2

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

4

3 回答 3

1

delay_job 的这个 fork 已经内置了重复(并且可能有其他 fork 做同样的事情):

http://github.com/andrewroth/delayed_job

于 2010-07-20T15:30:56.137 回答
0

这种cron方法似乎仍然很干净。它只需要运行一个rake调用,而不是一个完整的 Rails 服务器。Rake 不需要 Rails 运行即可工作。

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

于 2010-07-20T15:14:36.153 回答
0

关于那个......我有同样的愿望,我计划让一个cron每 5 分钟在我的站点的特定路线上启动一个curl请求,所以它会运行一个带有结果的动作,我会可以肯定它只运行了一次。

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

于 2010-12-17T18:51:05.520 回答