gpt4 book ai didi

ruby-on-rails - 延迟作业是否作为守护进程运行?

转载 作者:数据小太阳 更新时间:2023-10-29 07:57:38 25 4
gpt4 key购买 nike

delayed_job 似乎是一个用于安排要完成的任务的框架(通过 mysql 数据库)。

实际处理是通过 ruby​​ 完成的,该进程不是作为守护进程运行的,对吗?

即由我们通过 cron 作业以某种方式让 ruby​​ 火起来还是?

最佳答案

Delayed Job 确实作为一个进程运行,甚至能够运行多个 worker。

这些进程中的每一个都会完全加载您的 Rails 应用程序 - 在许多情况下这可能不太理想。

您可以通过以下方式开始延迟作业:

RAILS_ENV=production ruby script/delayed_job start -n 3

在我自己的项目中,我使用 bluepill确保所有崩溃的工作人员重新启动:

workers = 5
app_name = "my_app"
Bluepill.application("#{app_name}_delayed_job", :log_file => "#{app_home}/shared/log/bluepill.log") do |app|
(0...workers).each do |i|
app.process("delayed_job.#{i}") do |process|
process.working_dir = "#{app_home}/current"

process.start_grace_time = 10.seconds
process.stop_grace_time = 10.seconds
process.restart_grace_time = 10.seconds

process.start_command = "cd #{app_home}/current && RAILS_ENV=production ruby script/delayed_job start -i #{i}"
process.stop_command = "cd #{app_home}/current && RAILS_ENV=production ruby script/delayed_job stop -i #{i}"

process.pid_file = "#{app_home}/shared/pids/delayed_job.#{i}.pid"
process.uid = app_name # I install my applications under a user of the same name
process.gid = app_name
end
end

关于ruby-on-rails - 延迟作业是否作为守护进程运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5546983/

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