У меня есть модель Resend в моем проекте Ruby, она содержит столбцы контента и статуса.
Каков наилучший/быстрый способ использовать все записи со статусом 0 с помощью EventMachine?
Я хочу создать простого работника, который пытается найти записи со статусом == 0 каждый период (например, каждые 5 минут)
Я все еще новичок в EventMachine и не смог найти столько примеров того, как работать с БД.
До сих пор я сделал что-то вроде следующего, но не уверен, что это лучшая реализация:
$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
Любая помощь будет высоко ценится
File.expand_path("#{File.dirname __FILE__}")
— это антишаблон, которого следует избегать. То, что вы имеете в виду, этоFile.expand_path(File.dirname(__FILE__))
, поскольку нет причин для строки. - person tadman   schedule 10.12.2012