0

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

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

我是使用后台作业管理器(例如 Sidekiq、delayed_job 等)还是简单地将 Ruby 脚本包装在线程中并将初始化程序放在 Rails 配置文件夹中?

4

1 回答 1

0

启动应该只有一个运行实例的脚本的最简单方法是通过 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
    
于 2013-11-10T19:27:38.927 回答