【问题标题】:How should I run delayed_job in production environment?我应该如何在生产环境中运行delayed_job?
【发布时间】:2010-11-23 02:57:33
【问题描述】:

通过 rake jobs:work 在开发模式下运行它没有问题。但是,我不知何故无法弄清楚如何在生产中使用它。我正在使用 Capistrano 进行部署。

感谢您的建议!

【问题讨论】:

    标签: ruby-on-rails deployment background


    【解决方案1】:

    如果您将delayed_job 作为gem 安装,您需要运行生成器以创建脚本scripts/delayed_job 并设置运行权限。

    然后您可以按照How to configure Capistrano for Delayed Job 上的说明将其连接到您的 Capistrano 文件中。

    【讨论】:

      【解决方案2】:

      this answer。简而言之,使用Collective Idea fork of delayed_job。它包含一个可以使用的名为delayed_job 的脚本。

      【讨论】:

      • 我使用这个 fork 并且到目前为止对它非常满意。这些脚本只是确保您想要其他功能的便捷方法,否则我只是拉出脚本。
      【解决方案3】:

      您可以按如下方式运行生成的delayed_job脚本:

      RAILS_ENV=production script/delayed_job start
      

      希望对你有帮助

      【讨论】:

      • 这给了我-bash: bin/delayed_job: Permission denied。在生产中使用 Centos。有什么建议吗?
      【解决方案4】:

      我的第一个想法是在 capistrano 中添加一个部署后任务来运行 rake jobs:work 任务。您可能需要检查该进程是否已在运行并重新启动它。

      【讨论】:

        【解决方案5】:

        如果您通过 rake 运行它,那么您不能通过 cron 经常运行吗?每当 gem 是 ruby​​ 的一个很好的接口。

        【讨论】:

        • 调度异步作业应该避免必须管理调度任务。如果您想要这些任务而不需要轮询您的服务器,那么这不是一个好的选择。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多