0

私は、本番中に Passenger と Apache によって起動/生成される Rails アプリを持っています。私の質問はこれです: 必要な Ruby スクリプト/サービスを自動的に起動するための最良の方法は何ですか?

Passenger はリクエストに対して複数の Rails ハンドラーを生成するため、Passenger のワークフローについてはよくわかりませんが、サービスを実行する必要があるのは合計で 1 回だけです。

Sidekiq、delayed_job などのバックグラウンド ジョブ マネージャーを使用するか、単に Ruby スクリプトをスレッドでラップし、初期化子を Rails 構成フォルダーに配置しますか?

4

1 に答える 1

0

実行中のインスタンスが 1 つしかないスクリプトを開始する最も簡単な方法は、Ruby スクリプトまたは rake タスクを使用することです。たとえば、サイドキックを使用する場合:

  • 「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 に答える