我对此很陌生,对于Delayed Job的工作原理有点困惑。延迟作业在Ruby on Rails中如何工作?
我知道它创建一个表,并把作业在表中,然后我需要运行
rake jobs:work
启动后台进程。现在我的问题是
DJ脚本是否每分钟检查一次表格,当时间与job_at匹配时,它会运行那个工作?
如果脚本每分钟检查一次表格,它与cron(每当宝石)有什么不同?
感谢
我对此很陌生,对于Delayed Job的工作原理有点困惑。延迟作业在Ruby on Rails中如何工作?
我知道它创建一个表,并把作业在表中,然后我需要运行
rake jobs:work
启动后台进程。现在我的问题是
DJ脚本是否每分钟检查一次表格,当时间与job_at匹配时,它会运行那个工作?
如果脚本每分钟检查一次表格,它与cron(每当宝石)有什么不同?
感谢
- 不DJ脚本检查表中的每一分钟,到时job_at时间相匹配,它运行的工作吗?
当你运行rake jobs:work
DelayedJob将轮询delayed_jobs
表,执行工作,如果它被设置匹配job_at
列值。这部分你是正确的。
- 如果脚本只是每分钟检查一次,它与cron(每当gem)有什么不同?
whenever
是宝石,可帮助您配置一个crontab。它没有任何东西直接与定期执行您的服务器上的任务。
您可能设置一个cron运行在每分钟队列中所有任务存在的,但留下一个delayed_job
daemon在运行,有多方面的好处。
delayed_job
的守护进程会看到并执行任何任务队列中的cron之间的1分钟的窗口中运行如果你想通过cron配置delayed_job
每一分钟,你可以添加这样的事情你的crontab
* * * * * RAILS_ENV=production script/delayed_job start --exit-on-complete
每一分钟,delayed_job的就会旋转起来,执行任何工作都已经准备好了或它必须从先前失败的运行重试,然后退出。 我不推荐这个。将late_job设置为守护进程是正确的选择。
不DJ脚本检查表中的每一分钟,到时 job_at时间相匹配,它运行的工作吗?
是的。它每5秒检查一次数据库。
它如何不同于cron(每当宝石)如果脚本只是 每分钟检查一次表格?
在背景工作的背景下,他们没有那么不同。他们的主要区别是他们通常如何经营这些工作。
DJ | Crontab
uses additional database | you should either set up a rake task
table but that's it. easier | or a runner which can be called on the
to code compared to crontab | crontab
------------------------------|------------------------------------------
requires you to run a worker | requires you to setup your cron which
that will poll the database | you can easily do using the whenever gem
------------------------------|------------------------------------------
since this uses a table, it | you have to setup some sort of logging so
is easier to debug errors | that you have an idea what caused the error
when they happen |
------------------------------|------------------------------------------
the worker should always be | as long as your crontab is set up properly,
running to perform the job | you should have no issues
------------------------------|------------------------------------------
harder to setup recurring | easy to setup recurring tasks
tasks |
------------------------------|------------------------------------------
令人惊叹的答案jvnill,谢谢 – iCyborg 2013-02-22 16:44:45
!/我猜是2 /它处理的优先级,重试政策等... – apneadiving 2013-02-22 13:07:48