如何在rails应用程序的后台监听AWS SQS消息?

时间:2015-11-02 16:39:53

标签: ruby-on-rails ruby-on-rails-4 amazon-web-services amazon-sqs

我想在rails应用程序的后台异步轮询消息。 Shoryuken不起作用,因为我希望我的rails应用程序也能监听传入的HTTP请求。

1 个答案:

答案 0 :(得分:3)

config/initializers中创建一个初始化程序,如下所示:

# Allows the thread to crash our app for us
Thread.abort_on_exception = true
Thread.new do
    queue_url = "..."
    poller = Aws::SQS::QueuePoller.new(queue_url)
    poller.poll do |msg|
      puts msg.body
    end
end

您可以使用Active Job

通过更复杂的作业处理邮件

像这样创建工作: rails g job process_a_message

然后在poller块中:

    poller.poll do |msg|
      ProcessAMessageJob.perform_later msg.body
    end