Отправить сообщение XML в Amazon SQS - PullRequest
1 голос
/ 02 ноября 2009

Я новичок в Amazon SQS и Рубин на рельсах. И я работаю над проектом, что некоторые сообщения XML должны быть отправлены в SQS. Как я могу это сделать?

Теперь у меня есть это в контроллере после .save

 def create

    @thing = Thing.new(params[:thing])

    respond_to do |format|

      if @thing.save
        message = @thing.to_xml

и в модели

inputqueue.send_message(message) 

Это способ, которым я могу отправить файл XML в SQS или ??

Ответы [ 2 ]

1 голос
/ 03 ноября 2009

Я не уверен, что точно понимаю, но позвольте мне попытаться понять это прямо. Каждый раз, когда вы создаете конкретную модель, вы хотите отправить сообщение XML в Amazon SQS? Если это так, то ...

сохраняйте свой контроллер так:

def create
  @thing = Thing.new(params[:thing])

  if @thing.save
    #render view/partial/other
  else
    #display errors to user
end

Затем вы будете использовать Наблюдатель , чтобы позвонить в Amazon. Поместите своего наблюдателя прямо в каталог моделей:

/app/models/Thing.rb
/app/models/ThingObserver.rb

Ваш наблюдатель может выглядеть примерно так:

class ThingObserver < ActiveRecord::Observer
  def after_create(thing)
    AmazonSQSPlugin.send(thing.to_xml)
  end
end

Код в наблюдателе будет запускаться после каждого создания. Если after_create в наблюдателе возвращает false , все создание откатывается, как будто этого никогда не было.

Возможно, вам придется отредактировать конфигурацию среды, чтобы вызвать запуск наблюдателя, в зависимости от того, как настроено ваше приложение.

0 голосов
/ 12 ноября 2009

RightAws :: SqsGen2.queue (queue_name, message) - правильный путь для отправки сообщения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...