Я играю с Rails 4.2
приложение, которое использует ActiveJob
при поддержке resque/sidekiq
для рассылки электронной почты. Когда пользователь создает кампанию рассылки, новое задание создается и назначается на определенную дату. Это здорово, но что происходит, когда пользователь меняет дату доставки.Эффективно reschedule ActiveJob (resque/sidekiq)
В этом случае каждое задание может проверить, должно ли оно быть доставлено или нет, поэтому недопустимые задания будут проигнорированы и будет выполнен только последний. Это может сработать, но если пользователь сделает редактирование 1 тыс., Которое будет помещать 1k-1 недопустимые задания в очередь - это не хорошо. Я считаю, что существующая работа должна быть обновлена или заменена новой. Насколько я знаю, поиск в очереди Redis
для job_id
медленный.
Что было бы правильным способом переназначения ActiveJobs в Rails (с resque/sidekiq)?
Рассматривали ли вы переход на Que, который работает поверх PostgreSQL и интегрируется с AJ? По крайней мере, это быстро при массовом обновлении, я не уверен, что в нем возможно перепланирование. –
Спасибо @ D-side. Я проверю, вписывается ли это в мою платформу. – xpepermint
@ D-side Смешно, что я никогда не использовал жемчужину. Главной целью Que является надежность, и она выглядит так же быстро - идеально подходит для корпоративных услуг. – xpepermint