我需要在服务器端完成一个长时间运行的抓取任务,所以我尝试使用delayed_job
,但是,我在使用delayed_job
时遇到了问题Capybara
。所以,我在rails console
中运行任务。由于这是一项漫长的任务,因此当tmux
连接断开连接时,我会使用rails console
使ssh
保持活动状态。
我知道使用tmux
实际上是在使用rails console
模仿我。所以我的问题是,运行delayed_job
和在rails console
中执行任务之间是否存在真正的区别?
与rails console
相比,在delayed_job
中运行长任务会占用更多资源,因为它在前台运行吗?
rails console
上正在运行tmux
成为后台服务?因为我可以让它自己运行。
感谢。
答案 0 :(得分:0)
delayed_job
允许自动执行任务,而不是通过登录服务器在控制台中手动执行任务。
如果您可以手动执行任务,请不要担心使用delayed_job
/ resque
或任何the other background processing tools自动执行此任务。
这很可能是您希望定期完成的任务,因此将其作为后台任务自动化是值得的。 (花时间找出delayed_job / capybara错误可能是值得的)
在服务器上的tmux会话中运行任务的当前解决方案是模拟后台进程(一个手动启动的进程)