Ruby プロジェクトにモデルResendがあり、コンテンツとステータスの列が含まれています。
EventMachine を使用してステータス 0 のすべてのレコードを消費する最善/最速の方法は何ですか?
status==0 のレコードを定期的に検索しようとする単純なワーカーを作成したい (5 分ごとなど)
私はまだ EventMachine に慣れていないので、DB を扱う方法の例をあまり見つけることができませんでした。
これまでのところ、次のようなものを作成しましたが、それが最適な実装かどうかはわかりません。
$ROOT_PATH ||= File.expand_path("#{File.dirname __FILE__}")
require "rubygems"
require 'eventmachine'
require 'em-http'
require "#{$ROOT_PATH}/app/models/resend.rb"
EventMachine.run do
EM.add_periodic_timer(5) do
Resend.active.each do |msg|
http = EventMachine::HttpRequest.new($RECEIVER_URL).post :body => {:message => msg.content }
http.callback { msg.update_status! }
end
end
end
どんな助けでも大歓迎です