わかりました。StalkerとBeanstalkdでテストを行っています。私の目的は、500kbの投稿リクエストをオフロードして、それらを非同期でキューに入れて処理することです。
これまでのところ、私のテストでは、この非常に単純な例があります。
#worker.rb
require 'stalker'
include Stalker
job 'hello' do |args|
puts "hi"
sleep 1
puts "hello"
end
キューに追加するためのこのファイル
# stalker.rb
require 'rubygems'
require 'stalker'
10.times do
Stalker.enqueue('hello')
puts 'queued'
end
だから私は1つのターミナルで実行します
$ stalk worker.rb
1つの仕事をしている:[こんにちは]
次に、ストーカーファイルを実行します
$ ruby stalker.rb
ストーカーはほぼ瞬時に実行されるため、ブロックされることはありません。
ただし、ワーカーの実行には約10秒かかります。本当に、これらの10個のジョブを並行して実行したいので、これを1秒にはるかに近づけたいと思います。
これを行うための次の最善のステップに関する推奨事項はありますか?
更新:異なる端末から複数のワーカーを実行でき、キューをはるかに高速に処理できることに気付きました。たとえば、2人のワーカーが約半分の時間で処理を実行します。