Delajed Jobs中的重复任务没有激活Rails?

时间:2010-07-20 14:41:11

标签: ruby-on-rails delayed-job

如果我需要在延迟工作中创建重复性任务,那么什么是干净的解决方案?我有一个导入任务,我想每5分钟运行一次,但我不想启动rails / rake,以告诉它创建一个可以拾取的延迟作业。如果Rails已经在系统上运行,也许我可以创建一个HTTP请求,让rails应用程序从DJ中激活?我可以把这个cron任务放在一个每5分钟运行一次的ruby脚本中,向服务器发出请求,但不启动rails。你觉得怎么样?

3 个答案:

答案 0 :(得分:1)

这个delayed_job的fork已经内置了(并且可能还有其他的for可以执行相同的操作):

http://github.com/andrewroth/delayed_job

答案 1 :(得分:0)

cron方法似乎仍然非常干净。它只需要涉及运行rake调用,而不是完整的Rails服务器。 Rake不需要Rails就可以运行了。

但是,如果您真的不喜欢这种方法,那么您可以安排重复工作在处理时自行重新排队,将run_at时间设置为5分钟(或其他)将来。显然你需要第一次填充队列并确保delayed_job服务器保持运行

答案 2 :(得分:0)

关于那......我有同样的愿望, 我打算让 cron 每5分钟在我的网站的特定路线发出 curl 请求,因此它会运行一个带有结果的动作,而我我会非常肯定它只会运行一次。

我的目的包括:颁发徽章并编制一些平均值