0

我在从我的控制器调用并在后台运行的 rails 4 应用程序中有一个 rake 任务,如下所示:

system "rake fetch_news SOURCE=#{src} CATS=#{cat} C_ID=#{c_id} S_ID=#{s_id} FEED_ID=#{f_id} &"

它在后台运行完美,它的工作,但我需要再次启动相同的参数,延迟 1.5 - 2 分钟后。

非正式地,我看到这样的:

desc "Fetch news for specific category"
task :fetch_news => :environment do
    ... code of my background task ...
   sleep 120
   << insert here some code to restart the task >>
end

但我不知道如何实现这个:(。最初我以为我可以在我的任务中定义一个函数,调用该函数,休眠,再次调用它,但是该任务不允许将函数定义为。

我在谷歌上搜索了解决方案,但没有找到任何可以帮助我的东西。你能给我一个想法吗?

谢谢!

4

1 回答 1

0

你应该使用而不是 rake 任务:

  • CRON - 如果参数是固定的。如果您想简化使用 CRON 的工作,请随时查看
  • Sidekiq - 如果您想在运行时更改参数。Sidekiq 有能力定义经常性工作
于 2015-02-27T11:52:06.900 回答