使用 delayed_job 和运行轨道控制台有什么区别



我需要在服务器端完成一个长时间运行的爬网任务,所以我尝试使用它delayed_job,但是,我在将delayed_jobCapybara一起使用时遇到了问题。因此,我改为在rails console中运行任务。由于这是一项很长的任务,因此当我的ssh连接断开时,我使用 tmux 来保持rails console活动状态。

我知道使用tmux实际上是在模仿我使用rails console。所以我的问题是,运行delayed_job和在rails console中执行任务之间有真正的区别吗?

delayed_job相比,在rails console中运行长任务是否会占用机器上的更多资源,因为它在前台运行?

tmux上运行rails console会成为后台服务吗?因为我可以让它自己运行。

谢谢。

delayed_job允许自动执行任务,而不是通过登录到服务器在控制台中手动执行任务。

如果您可以手动执行任务,则不必担心使用delayed_job/resque或任何其他后台处理工具将其自动化。

这很可能是您希望定期完成的任务,因此值得将其作为后台任务自动执行。(可能值得花时间弄清楚delayed_job/水豚错误)

在服务器上的 tmux 会话中运行任务的当前解决方案是模拟后台进程(手动启动的进程)

最新更新