Size: a a a

2020 July 27

v

vladimir in OctoberCMS
Sasha
Все, теперь понял,(что не получится реализовать воркер из-за хостинга), а так мне понравилась эта тема. Буду изучать глубже)
Есть костыль который позволит реализовать очередь на шареде, через крон задачу)), вроде sansdaemon называется.
Препятсвует завершению процесса держа слушатель активным в течении позволенного max_execution_time
источник

v

vladimir in OctoberCMS
правда не знаю, будет ли шаред за такое ругаться))
источник

S

Sasha in OctoberCMS
vladimir
А так да, брокером является сторонний сервис. Может быть от amazon'a, может redis, beanstalkd, rabbitmq и т п
Базу стоит рассматривать в последний момент или для тестов, либо если очередь крутится не много обработчиков.
А я же могу сделать свой воркер получается? Запустить в кроне и стучаться к базе, хоть и да кол-во лишних стуков к но позволяет решить мне мою проблему только такое(
источник

v

vladimir in OctoberCMS
Sasha
А я же могу сделать свой воркер получается? Запустить в кроне и стучаться к базе, хоть и да кол-во лишних стуков к но позволяет решить мне мою проблему только такое(
сможешь, но через костыли.
источник

v

vladimir in OctoberCMS
а что за задача такая, что на крон не ложится?
источник

S

Sasha in OctoberCMS
vladimir
правда не знаю, будет ли шаред за такое ругаться))
Я пытался Ratchet на сутки запустить он у меня не работает, кажется именно по этой причине)
источник

S

Sasha in OctoberCMS
vladimir
а что за задача такая, что на крон не ложится?
Изменения статуса заказа через определенное время, по сути менеджера должны делать это на своем приложении, но они забили на это
источник

v

vladimir in OctoberCMS
Sasha
Изменения статуса заказа через определенное время, по сути менеджера должны делать это на своем приложении, но они забили на это
И чем крон не подходит?)
источник

v

vladimir in OctoberCMS
планировщик запускается раз в 1 минуту минимум, реализуешь свою консольную команду для artisan и описываешь логику по изменению статуса для заказов
источник

S

Sasha in OctoberCMS
vladimir
И чем крон не подходит?)
Там за минуту может придти по 50 заказов, слишком много заказов придется обрабатывать в одно и тоже время
источник

v

vladimir in OctoberCMS
50 заказов не так много.
источник

v

vladimir in OctoberCMS
а так у тебя придет 50 задач, которые очередь должна будет обрабатывать отложенно ))) и сомневаюсь, что на шареде нормально распаралеллить выйдет
источник

S

Sasha in OctoberCMS
vladimir
50 заказов не так много.
Каждую минуту, бывало за час со всех филиалов накапливалось больше 3000 активных заказов
источник

v

vladimir in OctoberCMS
Sasha
Каждую минуту, бывало за час со всех филиалов накапливалось больше 3000 активных заказов
ну при запуске команды раз в минуту, не думаю что много накопится.
источник

S

Sasha in OctoberCMS
vladimir
ну при запуске команды раз в минуту, не думаю что много накопится.
У меня бывало что в минуту задача не успевала отрабатывать, а за ней след задача обращалась к тем же самым полям в базе
источник

S

Sasha in OctoberCMS
То есть работали над одними и теми же данными
источник

v

vladimir in OctoberCMS
Sasha
У меня бывало что в минуту задача не успевала отрабатывать, а за ней след задача обращалась к тем же самым полям в базе
Ну это проблема уже проектирования разработки. Если задача ушла исполняться во чередь, чтобы другой процесс не взял этот же заказ, надо бы его как-то пометить
источник

S

Sasha in OctoberCMS
Через другую таблицу как пример можно там помечать что ожидает/в процессе/завершён. Сейчас думаю над этим вариантом
источник

v

vladimir in OctoberCMS
Sasha
Через другую таблицу как пример можно там помечать что ожидает/в процессе/завершён. Сейчас думаю над этим вариантом
думай, так как отложенные могут теряться)) или при их исполнении могут быть ошибки, которые разберешь в лучшем случае на следующий день ))
источник

v

vladimir in OctoberCMS
а так под твои задачи очень даже крон все решает.
Даже изворачиваться не надо.
источник