Zab*_*bba 4 scheduled-tasks delayed-job ruby-on-rails-3
是否可以使用delayed_job执行以下操作:
定义一个名为的类 Tasks
每5分钟后在任务中运行一个方法: Tasks.do_processing
当接下来的5分钟周期来临时,然后运行Tasks.do_processing 仅如果以前 do_processing已经完成
这是我必须自己创建的东西,还是delayed_job(或其他一些gem /插件)可以做到这一点?
PS.我知道操作系统级别的cron作业,但是如果我使用它,则意味着每次cron"触发"它都会重新加载整个Rails环境,而delayed_job只需要加载一次.
您可以考虑创建一个Rake任务或其他类似的独立进程来处理这个功能,然后使用守护进程将其包装起来:
什么是守护进程?
守护进程提供了一种简单的方法来包装现有的ruby脚本(例如自编写的服务器)作为守护进程运行,并由简单的启动/停止/重启命令控制.
如果需要,还可以使用守护进程在守护进程中运行ruby代码块,并从主应用程序控制这些进程.
除了这个基本功能外,守护进程还提供许多高级功能,例如异常回溯和日志记录(如果您的ruby脚本崩溃)以及监视和自动重启您的进程(如果它们崩溃).
如果你想做类似的事情:
class MyJob
run_every 1.day
def perform
# code to run ...
end
end
Run Code Online (Sandbox Code Playgroud)
然后试用这段代码:https://gist.github.com/1024726
| 归档时间: |
|
| 查看次数: |
8450 次 |
| 最近记录: |