gpt4 book ai didi

ruby-on-rails - 您如何在单个 Heroku dyno 上运行多个 DelayedJob 工作人员?

转载 作者:行者123 更新时间:2023-12-04 03:00:59 31 4
gpt4 key购买 nike

我无法让我的 dynos 运行多个延迟的工作进程。

我的 Procfile 看起来像这样:

worker: bundle exec script/delayed_job -n 3 start

和我的 delayed_job脚本是 gem 提供的默认值:
#!/usr/bin/env ruby

require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment'))
require 'delayed/command'
Delayed::Command.new(ARGV).daemonize

当我尝试在本地或在 Heroku dyno 上运行它时,它会静默退出,我不知道发生了什么。
foreman start
16:09:09 worker.1 | started with pid 75417
16:09:15 worker.1 | exited with code 0
16:09:15 system | sending SIGTERM to all processes
SIGTERM received

任何有关如何调试问题的帮助或有关在单个 dyno 上运行多个工作程序的其他方法的建议,将不胜感激。

最佳答案

您可以使用 foreman 在同一个 dyno 上启动多个进程。

首先,将 foreman 添加到您的 Gemfile 中。

然后添加一个 worker线到您的 文件 :

worker: bundle exec foreman start -f Procfile.workers

创建一个名为 的新文件Procfile.workers 其中包含:
dj_worker: bundle exec rake jobs:work
dj_worker: bundle exec rake jobs:work
dj_worker: bundle exec rake jobs:work

这将在您的工作人员 dyno 上启动 3 个 delay_job 工作人员。

关于ruby-on-rails - 您如何在单个 Heroku dyno 上运行多个 DelayedJob 工作人员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24792399/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com