【问题标题】:How to run rails rake task more frequently than 10 minutes on heroku?如何在heroku上更频繁地运行rails rake任务超过10分钟?
【发布时间】:2021-02-15 15:16:35
【问题描述】:

有一个简单的解释为什么 cron 作业和任务安排在任何时候 gem won't work on heroku

有没有办法安排 rake 任务比每 10 分钟运行一次(heroku 调度程序提供的最低频率),例如每 1 分钟?

【问题讨论】:

  • 您可以使用 RabbitMQ 并设置死信交换...
  • @jvillian 这些对我来说都是新术语。我现在就去谷歌!

标签: ruby-on-rails heroku ruby-on-rails-6


【解决方案1】:

您可以结合使用Clockwork gem 和 Heroku Procfile。

  • 在您的lib/clock.rb 中,您可以执行以下操作:
every(1.minute, 'Run task') do
  Rake::Task['namespace:task'].invoke
end
  • 然后将 clock: bundle exec clockwork lib/clock.rb 添加到您的 Heroku Procfile 中

Clockwork 支持很多时间变化。

【讨论】:

    【解决方案2】:

    我认为@ollaollu 的方法可能更胜一筹,但为了将来参考,对我有用的是use a Procfile to run an infinite loop on boot,它每5 秒有效地运行一个进程,甚至在heroku restart 之后也有效。

    【讨论】:

      猜你喜欢
      • 2011-06-08
      • 2021-09-13
      • 1970-01-01
      • 2015-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-04
      相关资源
      最近更新 更多