@proGO

Страница 406 из 1674
Phil
15.01.2017
09:50:53
и то, и другое
У тёзки кстати на эту тему доклад быд на 100+ слайдов.

Roman
15.01.2017
09:54:00
во, да. как раз пошёл гуглить как этот параметр зовется
С какой то версии Go он автоматически выставляется по числу ядер проца.

Daniel
15.01.2017
09:54:51
Google
Daniel
15.01.2017
09:56:09
а про раздраконить - ввопрос в размере.

Roman
15.01.2017
09:56:28
но можно же и покрутить
Да. Просто раньше нужно было выставлятьстобы использовать многочдерность, а сейчас наоборот. Кажется в 1.6 поменялось.

Roman
15.01.2017
10:01:23
Daniel
15.01.2017
10:01:39
я всегда делаю rw

по накладным расходам он не сильно отличается

Roman
15.01.2017
10:03:57
По поводу задачи Максима. Ставишь LevelDB - key/value хранилище с персистентностью. При закачки файла записываешь его атрибуты - путь, время создания. Запускаешь отдельную горутину с таймером, которая запускает периодически воркер. Воркер тупо пробегает по списку, проверяет экспирейшин тайм и асинхронно удалят файлы. Я думаю что на миллион файлов будет пригодин тупой for без изъебов. 1 кбайт кода и одна полезная билиотека.

Daniel
15.01.2017
10:04:26
зачем левелдб, а?

ну вот зачем?

Phil
15.01.2017
10:04:37
можно подумать, твою логику на очередях будет проще поддерживать и верифицировать. не надо, фил, в это лезть.
Конечно проще. Изменения намного проще. Мне не всегда нужен откат - достаточно просто сбоепереживаемость и консистентность. Я долго сомневался, но тёзка меня таки убедил.

Google
Roman
15.01.2017
10:04:46
зачем левелдб, а?
Персистетность

Daniel
15.01.2017
10:04:59
а, делайте что хотите

Phil
15.01.2017
10:05:03
а про раздраконить - ввопрос в размере.
Раздраконить - ладно. Это улучшательство. Которое может быть враг хорошего

Phil
15.01.2017
10:05:47
Roman
15.01.2017
10:06:02
а, делайте что хотите
Ну на самом дел можно инициализацию делать путем сканирования существующих файлов. Тогда нет, не нужно.

Daniel
15.01.2017
10:06:12
о!

прорезался голос разума

но сканирование все одно нужно делать, так что и вариантов нет

Roman
15.01.2017
10:07:09
При старте запусаем сканер - который набивает массив. Потом таймер, воркер и все дела.

Го офигенен именно этой возможностью все класть в память. Круче только Ерланг, где можно еще и код на ходу менять.

Daniel
15.01.2017
10:09:59
а?!

я на любом языке сделал бы ровно то же самое

Daniel
15.01.2017
10:10:53
и табличка "сарказм"

Roman
15.01.2017
10:11:26
Google
Maxim
15.01.2017
10:14:34
С БД тогда аналогично чекать записи по расписанию и если найдутся устаревшие - по их данным выпиливать.

В общем - хочешь-не-хочешь, а какой-нибудь процесс с периодичной проверкой вешать надо. Ладно, я понял.

Maxim
15.01.2017
10:19:19
Roman
15.01.2017
10:24:15
Начни с системной библиотеки - прочитать список директорий и список файлов.

Petr
15.01.2017
10:49:43
Привет, как определить новое поведение методов для именованных типов? type Celsius float64 var c Celsius var p Celsius = 14.2 func main() { fmt.Println(p) } func (p Celsius) String() string { return fmt.Sprintf("%g°C", p) } я вот так делаю, но это только для p

Можно как нибудь для всего типа переопределить?

Serge
15.01.2017
11:18:26
Я думаю всякие Beanstalk это тоже умеют.
Beanstalk сам по себе не умеет ничего. Это не сервис, а инструмент.

Serge
15.01.2017
11:23:58
Какие пакетики могут мне помочь со сканом файлов рядом?
Можно для тупых? К нам пришел файл. Мы его сохранили в ФС. Потом мы иногда читаем этот файл. Мы не должны читать файл, если он старше 24 часов, так?

Roman
15.01.2017
11:27:35
Кто что и куда загрузил. Мы на какой стороне? Ни хера же не понятно
Если мы в чате про Го, то мы всегда на серверной стороне :)

Petr
15.01.2017
11:30:29
В каком смысле только для p? https://play.golang.org/p/BPUt_ElDOU
Понял, значит я не так что то делал

Serge
15.01.2017
11:30:52
Если мы в чате про Го, то мы всегда на серверной стороне :)
Если я собираю логи с серверов, я на какой стороне?

Можно для тупых? К нам пришел файл. Мы его сохранили в ФС. Потом мы иногда читаем этот файл. Мы не должны читать файл, если он старше 24 часов, так?

Google
Serge
15.01.2017
11:39:32
Я пытаюсь смотреть выше

Maxim
15.01.2017
11:39:45
Это глупо
Это надо.

Serge
15.01.2017
11:39:48
Иначе, всё и правда плохо

Это надо.
Это иллюзия

Maxim
15.01.2017
11:40:07
Это иллюзия
Всё член. ?

Serge
15.01.2017
11:40:27
Что случится, если файл продолжит лежать?

Вот в том месте, где это мешает, надо вставить проверку и удалять старое.

А лучше игнорировать и ставить задачу отдельному треду/демону на удаление, чтобы не тратить время на io

Admin
ERROR: S client not available

DreamingKitten
15.01.2017
11:50:48
по-моему проще сделать обычный FIFO буфер, куда пихать имена файлов и проверять только тот что на выходе, т.к. все что за ним явно будут моложе

удалили его, начинаем проверять только следующий за ним и так далее

скачали новый — сунули в очередь

если файлы уже есть, то проверить один раз все, отсортировать по времени загрузки и опять таки сунуть в фифо буфер

ио минимальный, тред вообще может спать до того как самый старый файл достигнет нужного возраста

Maxim
15.01.2017
13:00:37
Мою библу для Telegraph ретвитнул чувак с косарём фолловеров. 0_0

И судя по профилю он какой-то монстр (но Go не знает, судя по всему): https://julianxhokaxhiu.com/

Phil
15.01.2017
13:17:22
В одном потоке го особо не имеет смысла
да? странно, я часто использую как раз для этого. ты я думаю не так меня понял. в одном системном, а не логическом потоке

Google
Roman
15.01.2017
13:18:55
по-моему проще сделать обычный FIFO буфер, куда пихать имена файлов и проверять только тот что на выходе, т.к. все что за ним явно будут моложе
Кстати, правильно. Можно вобще функцию проверки вставить в обработчик обращения к файлу, поскольку операция копеешная по времени. Но мы ТЗ до конца до сих пор не знаем. Ни сколько миллионов файлов, ни какая нагрузка планируется :) Ни требования к надежности или размеру хранилища.

Maxim
15.01.2017
13:19:28
а что в библе?
Библи как библа, простая надстройка API Telegraph

Кстати, правильно. Можно вобще функцию проверки вставить в обработчик обращения к файлу, поскольку операция копеешная по времени. Но мы ТЗ до конца до сих пор не знаем. Ни сколько миллионов файлов, ни какая нагрузка планируется :) Ни требования к надежности или размеру хранилища.
А ТЗ и нет, я чисто для себя файлопомойку делаю с расчётом на то, что им также будут пользоваться знакомые и не очень люди. Хрен знает, может внезапно и нагрузка пойти либо засчёт веса файлов, либо засчёт их количества.

Roman
15.01.2017
13:21:38
Тогда cron find ...

Maxim
15.01.2017
13:22:30
Тогда cron find ...
Буквально недавно долбался с кроном в докере. Не вышло, пришлось сунуть его в корень самого сервака, а уже в нём (в скрипте крона) втыкаться в докер и что-то там делать.

#психанул

Roman
15.01.2017
13:24:07
find /opt/files/ -mtime +1|xargs rm -f - не благодари!

DreamingKitten
15.01.2017
13:25:08
Roman
15.01.2017
13:25:29
http://www.binarytides.com/linux-find-command-examples/

DreamingKitten
15.01.2017
13:25:38
это проход по всем файлам и удаление всех, изменённых более суток назад

Roman
15.01.2017
13:26:39
Костыль люди берут когда надо идти, а нога болит.

DreamingKitten
15.01.2017
13:27:00
вообще у уважающих себя серверов, которые имеют привычку писать логи, должен быть встроенный логротатор, где такое поведение можно задать штатными средствами

а если это не логи, то трудно понять почему нужна такая высокая точность отслеживания возраста файла, потому что вот такой вот костыль справится будучи запущенным раз в сутки

Roman
15.01.2017
13:27:52
Я уверяю что этого костыля хватит пока количество твоих друзей не перевалит за тысячу или больше

DreamingKitten
15.01.2017
13:28:37
Почему бы не завести какую-нибудь СУБД, пихать в неё id файла, а потом допустим раз в час делать запрос и удалять старые файлы?
уже предлагали. субд для отслеживания возраста файла, если он и так есть в метаданных — это оверкилл

Мерлин
15.01.2017
13:29:04
уже предлагали. субд для отслеживания возраста файла, если он и так есть в метаданных — это оверкилл
пффф, оверкилл в пару десятков мегабайт на файлопомойке - это смешно

Страница 406 из 1674