首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当乘客启动时,如何启动背景?

当乘客启动时,如何启动背景?
EN

Stack Overflow用户
提问于 2012-03-02 02:51:24
回答 2查看 354关注 0票数 0

我有一个运行在Apache+Passenger下的Rails应用程序,并使用backgroundrb完成一些任务。有没有办法让backgroundrb在乘客启动时启动?例如,在服务器重新启动后,我希望所有东西都可以重新启动,而无需手动干预来启动后台For,也不必为其创建一个init脚本。

EN

回答 2

Stack Overflow用户

发布于 2012-03-02 03:51:18

您可以在Rails初始化器(config/initializers)中进行调用。

要仅在启动乘客作业时执行此操作,请将呼叫包装在类似于...

代码语言:javascript
复制
if defined? PhusionPassenger
  PhusionPassenger.on_event :starting_worker_process do |forked|
    if forked
      ... spawn your backgroundrb here...
    end
  end
end

这种方法的问题是,您最终会在每个乘客工作进程中产生一个新进程。你需要检查一下backgroundrb是否已经在运行。

你应该能够做一些类似的事情。

票数 1
EN

Stack Overflow用户

发布于 2012-05-10 05:26:27

您可以考虑将其放入您的config/environment.rb .rb文件中:

代码语言:javascript
复制
unless FileTest.exist?("#{RAILS_ROOT}/log/backgroundrb.pid")
    fork do
    exec("#{RAILS_ROOT}/script/backgroundrb", "run")
    end
end

将/log/ backgroundrb drb.pid更改为您的backgroundrb服务器使用的任何pidfile,您就可以开始比赛了……

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9522157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档