gpt4 book ai didi

ruby - 如何在启动时自动创建一个 resque worker?

转载 作者:IT王子 更新时间:2023-10-29 05:57:43 25 4
gpt4 key购买 nike

好的,我正在制作我的第一个 ruby​​ 应用程序。谁知道将所有内容都转移到“生产”中是如此复杂。到目前为止,我一直在努力配置 passenger,让它在启动时运行,然后让 redis 在启动时运行。

我的最后一个任务是在启动时添加 1 个 worker 。现在,我必须通过 ssh 登录并运行我的 rake 命令 rake workers:start。显然,当我想关闭 ssh 时,这并不好。所以我真的不知道下一步该怎么做或做什么。

我尝试将 resque 默认配置复制到 config.ru,但它只会让 Passenger 出错。我还研究了一些人提到的 resque-pool,但这超出了我的理解范围。

我所要做的就是在启动时添加 1 个 worker。这不是那么严肃的应用程序,所以在这一点上最好是更简单。

最佳答案

我不使用 god gem,因为 (1) 我看到一个项目因引入的设置复杂性而受到重创,并且 (2) 我个人对标准 Linux (Ubuntu) 非常满意处理这类事情的工具。

在启动时启动 Resque workers

我的 /etc/rc.local 文件中有这段代码。我在系统上有一个部署用户:

# Start Resque
su -l deploy -c "/home/deploy/start-resque-workers"
su -l deploy -c "/home/deploy/start-resque-webui"

然后,在这些脚本中我设置了 ruby​​ 环境并运行了 rake 任务:

# Load RVM into a shell session *as a function*
if [[ -s "$HOME/.rvm/scripts/rvm" ]] ; then
# First try to load from a user install
source "$HOME/.rvm/scripts/rvm"
elif [[ -s "/usr/local/rvm/scripts/rvm" ]] ; then
# Then try to load from a root install
source "/usr/local/rvm/scripts/rvm"
else
printf "ERROR: An RVM installation was not found.\n"
fi

# Use rvm to switch to the default ruby.
rvm use default

# Now launch the app
cd /home/deploy/app-name-here/current
nohup rake QUEUE=* RAILS_ENV=production environment resque:work &

多年来我一直在使用这种设置,它很可靠。服务器不会崩溃。我还不需要安装另一个系统(如 god gem)来监视这些其他服务器的开销。

此外,我使用 capistrano gem 来处理重新启动部署的工作人员。

关于ruby - 如何在启动时自动创建一个 resque worker?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8697561/

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