【问题标题】:Heroku cron job helpHeroku cron 工作帮助
【发布时间】:2011-04-13 09:24:29
【问题描述】:

如何在 cron.rake 中每 15 分钟运行一次任务 reklamer:runall?

I have my cron.rake file:
desc "This task is called by the Heroku cron add-on"
task :cron => :environment do
  if Time.now.hour % 4 == 0 # run every four hours
    puts "Updating feed..."
    NewsFeed.update
    puts "done."
  end

【问题讨论】:

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


    【解决方案1】:

    Heroku 只提供每日或每小时的 cron 作业,所以我认为你不走运每 15 分钟运行一次 cron 作业。

    相反,您可以使用 delayed_job 每 15 分钟运行一次作业。在每次运行结束时,您的作业代码应创建另一个将在 15 分钟内运行的作业。您可以根据需要计算从工作开始或结束开始的 15 分钟。

    【讨论】:

    • 是的,你需要一个工人。您可以尝试使用 HireFire (github.com/meskyanichi/hirefire) 之类的工具来降低成本。
    • github.com/collectiveidea/delayed_job 有示例。关键是在创建作业时使用 :run_at 参数来指定它们应该何时运行。
    • 仅供参考,这些延迟作业是否与应用程序分开运行?我可以运行一项调查我的应用程序是否有任何崩溃等的工作吗?或者应用程序崩溃也会导致所有作业失败?
    • delayed_job 工作者是与您的应用程序分开的进程。他们与应用程序交换信息的唯一方式是通过数据库,因此您必须在数据库中记录有关异常的信息,然后让延迟的作业处理它。
    猜你喜欢
    • 2011-10-05
    • 1970-01-01
    • 1970-01-01
    • 2011-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-12
    相关资源
    最近更新 更多