使用导轨在特定时间发送电子邮件



我想在周一至周五上午 11:00 自动向所有供应商发送订单列表。我该怎么做?

我正在使用 Rails 5.1

我知道 ActiveJobs 具有Notifier.deliver_later功能,但如果我是对的,它仅适用于相对时间(例如:从现在起 10 小时(。我实际上需要在 11:00 准确发送电子邮件。

您可以在 gem 上使用此任务。它为编写和部署 cron 作业提供了清晰的语法。

安装此 gem 或添加 gemfile。转到项目目录并运行 whenevrize .

$ cd /apps/my-great-project
$ wheneverize .

它会在项目中创建一个config/schedule.rb文件。现在,您可以将任务添加到此文件中,Gem 将处理所有事情。

对于您的情况,它看起来像这样。

every :weekday, at: '11:00 am' do
  runner "MyModel.task_to_run_at_eleven_in_the_morning_on_weekdays"
end
我建议你将Sidekiq与Sidekiq

一起使用-cron这个gem可以在高负载项目上运行,具有Sidekiq UI(来自Sidekiq(,你可以从Sidekiq UI方面观察和重新启动作业。

Sidekiq更

灵活,更有用,可以并发,具有特权队列等(Sidekiq的所有优点(

最新更新