好的,我正在使用 Stalker 和 Beanstalkd 进行一些测试。我的目标是将 500kb 的 post 请求卸载到队列并异步处理它们。
到目前为止,在我的测试中,我有一个非常简单的例子。
#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
所以在一个终端我跑
$ stalk worker.rb
工作 1 个工作:[你好]
然后我运行跟踪文件
$ ruby stalker.rb
stalker 几乎按预期立即执行,因此没有阻止。
但工作人员大约需要 10 秒才能运行。真的,我希望这 10 个作业的时间更接近 1 秒,因为我希望它们并行运行。
有关执行此操作的下一个最佳步骤的任何建议?
更新:我意识到我可以从不同的终端运行多个工作人员,它会更快地处理队列,例如 2 个工作人员将在大约一半的时间内完成该过程。