我需要在服务器端完成一个长时间运行的爬网任务,所以我尝试使用它delayed_job
,但是,我在将delayed_job
与Capybara
一起使用时遇到了问题。因此,我改为在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 会话中运行任务的当前解决方案是模拟后台进程(手动启动的进程)