Ruby on rails 与乘客一起运行的轨道所需的启动服务

Ruby on rails 与乘客一起运行的轨道所需的启动服务,ruby-on-rails,Ruby On Rails,我有一个Rails应用程序,在制作期间,将由Passenger和Apache启动/生成。我的问题是:自动启动所需Ruby脚本/服务的最佳方法是什么 我不太了解Passenger的工作流程,因为它为请求生成了多个Rails处理程序,但我只需要让服务总共运行一次 我是使用诸如Sidekiq、delayed_job等后台作业管理器,还是简单地将Ruby脚本包装在一个线程中,并在Rails config文件夹中放置一个初始值设定项?启动一个只应该有一个运行实例的脚本的最简单方法是通过Ruby脚本或rak

我有一个Rails应用程序,在制作期间,将由Passenger和Apache启动/生成。我的问题是:自动启动所需Ruby脚本/服务的最佳方法是什么

我不太了解Passenger的工作流程,因为它为请求生成了多个Rails处理程序,但我只需要让服务总共运行一次


我是使用诸如Sidekiq、delayed_job等后台作业管理器,还是简单地将Ruby脚本包装在一个线程中,并在Rails config文件夹中放置一个初始值设定项?

启动一个只应该有一个运行实例的脚本的最简单方法是通过Ruby脚本或rake任务。例如,在使用sidekick时:

  • 创建一个名为“my_worker.rb”的助手

    class MyWorker
      include Sidekiq::Worker
    
      def perform
        # do something
      end
    end
    
  • 从rake任务调用它,如:

    require_relative '../../app/workers/my_worker'
    
    namespace :disruption_worker do
      desc "Schedule the My Worker in Sidekiq"
      task :schedule => :unschedule do
    
        MyWorker.perform_async
      end
    
    end
    

使用Sidekiq/另一个守护程序工具与向Ruby脚本添加条目以更新rc.d文件(如果有的话)相比有什么好处?