
Антон
21.06.2016
09:16:41
должно работать

Adamtsov
21.06.2016
09:18:40
а если эти задачи одновременно возьмут в работу?
в прицнипе у меня все работает, баг только с 1 последней задаче
Sidekiq::Queue.new("worker_name").size > 0

Google

Антон
21.06.2016
09:24:38
можно в редисе прочитать - посчитать
но по-моему ошибка в проектировании

Adamtsov
21.06.2016
09:31:58
были бы callback в бесплатном - все норм было

Антон
21.06.2016
09:32:26
нет :)
возложение дополнительной отвественности на сервис обработки сообщений - не норма

Adamtsov
21.06.2016
09:33:15
зато работать будет очень быстро

Антон
21.06.2016
09:33:52
я печатаю 5000 символов в минуту, но получается какая-то херня
а поделись пожалуйста, что за задача такая?

Adamtsov
21.06.2016
09:35:51
надо генерить xml, в бд мильон записей

Антон
21.06.2016
09:37:16
Каждый из мелких проверяет зажжен ли семафор
Если зажжен - запускает большого
А сайдкик лучше не трогать пока он работает

Evgeny
21.06.2016
09:38:01
Парни вопрос, стоит ли юзать рельсвый ajax или есть смысл внедрить angular например и юзать как велит js фреймворк? Как лучше

Adamtsov
21.06.2016
09:38:19
так я его и не трогаю, мне надо дождаться пока вся инфа в файл запишеться, а потом сделать действия с файлом

Антон
21.06.2016
09:40:32
нельзя принимать решение об окончании записи файла по количеству воркеров в сайдкике
это как по количеству бабулек у подъезда предсказывать погоду на марсе
сайдкик не гарантирует даже точное количество бабулек

Google

Adamtsov
21.06.2016
09:41:24
а смотри количество задач в очереди
если очередь пустая - значит все сделаны

Антон
21.06.2016
09:41:36
нет :)
или не сделаны, или сайдкик упал

Adamtsov
21.06.2016
09:42:03
если сайдкик упал, то они браться в работу не будут

Антон
21.06.2016
09:42:11
очередь он читает из редиса, сайдкик может не работать

Adamtsov
21.06.2016
09:42:15
да
значит задачи будут еще в очереди

Антон
21.06.2016
09:42:24
кароче говно решение
точка
я бы не пустил в production

Adamtsov
21.06.2016
09:42:36
так пиздеть то не мишки ворочить

Антон
21.06.2016
09:42:59
я предложил решение, чем не устраивет?
какие еще могут быть признаки что работа над файлом закончилась?

Adamtsov
21.06.2016
09:43:37
там мне надо это в sidekiq делать

Антон
21.06.2016
09:43:38
но это не могут быть воркеры в сайдкике
делай, но я пердуперждал

Adamtsov
21.06.2016
09:44:09
спасибо

yopp
21.06.2016
10:00:33
спасибо
дьячук прав. Не обязательно семафор, но какие-то артефакты то от воркера будут, вот их и проверять в конце выполнения
когда все артефакты собраны, последний выключает свет и закрывает дверь

Google

yopp
21.06.2016
10:01:03
в смысле запускает задачу которая из артефактов крафтит что там тебе надо
очередь это не показатель, более того, в моменте очередь может леко оказаться пустой, что не будет совершенно отражать реальности
более того, воркер может свалится
у тебя будет например 9 из 10 артефактов

Adamtsov
21.06.2016
10:02:24
блин я что то не догоняю, что тогда может мне показать, что работа завершена
или вообще sidekiq не юзать?

yopp
21.06.2016
10:02:36
что у тебя делает воркер?
в смысле: задача что делает?
одна конкретная?

Adamtsov
21.06.2016
10:03:15
собирает xml файл
записывая туда инфу из бд

yopp
21.06.2016
10:03:37
каждая задача собирает 1 файл?

yopp
21.06.2016
10:03:41
и куда она его складывает?

Adamtsov
21.06.2016
10:04:36
смотри: дергается 1-ый воркер, который создает файл, и инициализует других воркеров, который берут инфу из БД и пишут в этот файл, затем 1-ый воркер, дописывает инфу в файл

yopp
21.06.2016
10:04:46
ой.
писать в много потоков в файл, очень так себе идея

Adamtsov
21.06.2016
10:05:08
других вариантов пока хз как (

Антон
21.06.2016
10:05:14
значит инициализатор знает сколько должно быть артефактов?

Adamtsov
21.06.2016
10:05:23
ну если сделать Object.count

yopp
21.06.2016
10:05:25
каждый воркер должен изолированно накрафтить свой кусок

Google

Adamtsov
21.06.2016
10:05:34
свой файл?

yopp
21.06.2016
10:05:34
и последний должен из кусков собрать целый файл
и потом сделать что ему там надо сделать
и желательно это всё куда-то в shared storage складывать, чтоб воркеры могли на разных нодах работать

Can
21.06.2016
10:07:04
+

yopp
21.06.2016
10:07:16
идеально назад в субд просто блобом

Adamtsov
21.06.2016
10:07:40
в субд идея вообще норм, там можно смотреть тогда закончили они или нет

yopp
21.06.2016
10:07:44
да
можно временно писать на диск, если артефакт здоровый

Admin
ERROR: S client not available

yopp
21.06.2016
10:08:42
и потом прост с диска хуйнуть в базу

Антон
21.06.2016
10:08:45
а вот вопрос появился, апдейтить записи в документе, или создавать новые, а потом их джойнить

yopp
21.06.2016
10:08:59
новые каеш
1 артефакт = 1 запись

Adamtsov
21.06.2016
10:09:08
мб можно в ruby как то узнать открыт ли файл где то еще?)

yopp
21.06.2016
10:09:23

Adamtsov
21.06.2016
10:09:32
у OC я вроде нагуглил

yopp
21.06.2016
10:09:33
но это плохая идея :)
если файл твой, надо ставить лок

Антон
21.06.2016
10:10:03
джойнить надо будет sql-ем, если фрагментов миллион

Google

Can
21.06.2016
10:10:12
Shared mutable is evil

yopp
21.06.2016
10:10:41
можно прост на диск дамп сделать и там cat в один файл
джойнить блоб в базе так себе идея
но это от субд зависит
если она умеет это через временную таблицу делать, то в теории от ката это не особо будет отличатся

Adamtsov
21.06.2016
10:12:16
а если, каждый пишет в новый файл и раз в какое то время смотреть сколько этих файлов)

yopp
21.06.2016
10:12:27
файл если только временный
чисто для экономии памяти

Антон
21.06.2016
10:12:49
файловая система - плохая субд

yopp
21.06.2016
10:12:53
йеп

Антон
21.06.2016
10:13:48
дамп на диск - какой-то грязный хак :)
дамп на прод-базе под управлением сайдкика, думаешь ок?

yopp
21.06.2016
10:22:37
от субд зависит на самом деле
если субд может эффективно собрать кучу блобов не вставая раком, можно и не дампить

Александр
21.06.2016
12:30:44
> Если вы новичок, пожалуйста представтесь и расскажите что-то интересное о себе и какие крутые проекты вы делаете.
Всем привет, я из команды разработчиков MetaStudio! Проекты делаем разные, чёрные, белые, красные ?

Eugene
21.06.2016
12:32:47

Александр
21.06.2016
12:43:56

Eugene
21.06.2016
12:44:10

Александр
21.06.2016
12:44:24
Конечно
Клёво, приятно познакомиться.

Антон
21.06.2016
12:52:04
вот остановились на вопросе: как склеить 1м кусков xml в один
SQL субд, cat дампа субд
не решили