バックグラウンド プロセスに Resque を使用するアプリケーションがあります。ので、私は持っています
-/app/workers/dataCollector.rb
そしてコントローラーで:
def new
@my_model = MyModel.new(params[:])
Resque.enqueue(DataCollector, @my_model.id)
end
ある時点で dataCollector から情報を取得して処理する別のワーカーを追加したいと考えています。
だから私は試しました:
-app/workers/dataCollector.rb
/dataProcessor.rb
私のMyModelクラスにありました:
def my_function
...
data.each do |d|
Resque.enqueue(DataProcessor, data)
end
end
私の新しい労働者は次のようになりました:
class DataProcessor
@queue = :processing_queue
def self.perform(data)
new_var = processingFunction(data)
newModel.column = new_var
end
end
結果のエラーは「スタック レベルが深すぎます」でした</p>
プログラムをローカルで一度実行しました...
bundle exec env rake resque:work QUEUE='*'
redis-server /usr/local/etc/redis.conf
resque Web インターフェイスで processing_queue が表示されることはありません。