RabbitMQ と AMQP のdelayed_job 実装を置き換えようとしています。現在、ActionMailer モデルを使用してメールを送信しています。さまざまなタイプのイベントを送信するさまざまな方法があります。RabbitMQ と AMQP に置き換える予定です。いくつかの AMQP の例を調べた後、単純なモジュールまたはヘルパーを作成しましたが、それが正しいかどうかわからず、RabbitMQ を actionmailer にラップする方法を理解するのに苦労しています。ここに私が書いたモジュールがあります
module rabbitesh
require 'amqp'
def call_rabbits(payload,queue_name)
AMQP.start(:host => CONFIG['RABBIT_HOST']) do |connection|
channel = AMQP::Channel.new(connection)
queue = channel.queue(queue_name)
channel.default_exchange.publish(payload, :routing_key => queue.name)
EM.add_timer(0.01) do
connection.close do
EM.stop { exit }
end
end
end
end
end
これを達成するためのヒントを提供してください。