2015-06-17 3 views
1

Как мы можем добавить работу в sidekiq с помощью рельсов к определенной дате и времени с использованием времени db, я хочу отправлять электронные письма, когда приходит время встречи, так что будет лучшим подходом что?рельсы + sidekiq конкретная дата и время работы

+0

Я нашел решение, как только назначение создается, вынимая разница с текущим временем и преобразование его в часах, а затем добавьте это время к новому заданию, которое будет выполнено после установленных часов. Пример: 'время = TimeDifference (Time.now - appointment_time) .in_hours' ' AppointmentsWorker.perform_in (time.hours) ' –

ответ

1

Прикрепите дату назначения (или даже лучше конкретное уведомление о назначении datetime) к модели назначения.

Затем выполняйте фоновое задание в очереди каждую минуту, которая проверяет все неотправленные уведомления о закрытых событиях (например, события, в которых уведомление о назначении меньше, чем 1 минута в будущем и еще не отправлено), и для каждой очереди назначения отправляется электронное письмо для отправки.

Вы можете использовать sidekiq в очереди сообщения электронной почты, и систему хрон, такие как clockwork для епдиеей задач на sidekiq проверять каждую минуту для отправлять уведомления.

0

Вы можете обратиться к родному Active Job API, представленному в рельсах 4.2 (которые идут перед Sidekiq).

Вы строите работу с API-интерфейсом rails, вы указываете в conf-файле, что используете sidekiq, а рельсы будут помещать задание в sidekiq.

Преимущества: Вы можете переключиться на другой драгоценный камень enqueuing, проще отложить работу в определенную дату, вы можете выполнить after_action, которые обычно находятся в профессиональной версии Sidekiq.

Смотрите учебник, чтобы узнать больше об этом: http://edgeguides.rubyonrails.org/active_job_basics.html

Быстрый пример:

# Enqueue a job to be performed tomorrow at noon. MyJob.set(wait_until: Date.tomorrow.noon).perform_later(record)

Надеется, что это поможет

+0

не работает, неопределенный метод "набор" – user1735921

Смежные вопросы