使用delayed_job和运行rails控制台之间有什么区别

时间:2012-12-16 14:06:12

标签: ruby ruby-on-rails-3 delayed-job tmux rails-console

我需要在服务器端完成一个长时间运行的抓取任务,所以我尝试使用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成为后台服务?因为我可以让它自己运行。

感谢。

1 个答案:

答案 0 :(得分:0)

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

如果您可以手动执行任务,请不要担心使用delayed_job / resque或任何the other background processing tools自动执行此任务。

这很可能是您希望定期完成的任务,因此将其作为后台任务自动化是值得的。 (花时间找出delayed_job / capybara错误可能是值得的)

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