2017-05-18 8 views
0

Queueからのポーリングメッセージを保持するrubyスレッドを作成しました。 以下は、キューを無期限にポーリングし続ける基本的なコードブロックです。アプリケーションが起動するときにこのコード(無限ループスレッド)ブロックが実行されるように、レールサーバーの起動時にこのメソッド(PollerクラスのPollメソッド)を初期化できますか?ruby​​クラスでメソッドを初期化するにはどうすればよいですか?

class Poller 
class << self 
    def poll 
    begin 
     ----polling logic for queue 
     sleep(1.minute) 
    end while(true) 
    end 

end 
end 

上記のコードがキューからのメッセージのポーリングを開始するように、レール上の初期化プログラムで上記のコードを初期化するにはどうすればよいですか?

+0

私は質問を更新しました。現在はより良いことを願っています –

+1

Railsプロダクションシステムでは、通常、サーバーごとに複数のサーバープロセスまたはスレッドがあります。それらのすべてのためにただ一つの 'Poller'またはそれぞれ' Poller'を開始したいですか?何か問題が起きたときに、Webサーバープロセスを再起動して、 'Poller'を再起動する方法を教えてください。オプションで毎分実行するCronジョブで一度だけ投票するPollerを起動していますか?私はセットアップが簡単で、管理しやすく、信頼性が高いと思います。 – spickermann

+0

その1つのポーラー各server.howは、上記のクラスをサーバーの起動時にポーリング方法を実行するように開始しますか?それは私の既存のレールアプリケーションを介して行われるべきであり、他の方法ではありません。 –

答えて

0

イニシャライザからpollメソッドを呼び出してコードを実行できます。

イニシャライザで1つの.rbファイルを作成し、ポーリングメソッドを呼び出すだけです。

関連する問題