我想在周一至周五上午 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
一起使用-cron这个gem可以在高负载项目上运行,具有Sidekiq UI(来自Sidekiq(,你可以从Sidekiq UI方面观察和重新启动作业。
Sidekiq更灵活,更有用,可以并发,具有特权队列等(Sidekiq的所有优点(