如何从队列中发送ExceptionNotifier?

时间:2014-05-23 18:42:29

标签: ruby-on-rails exception

说我从一个例外中解救,我这样做:

 begin
      raise StandardError 
    rescue StandardError => ex
      ExceptionNotifier.notify_exception(ex)
    end
 end

如何从队列中发送ExceptionNotifier电子邮件?那么,它与应用程序的进程是异步的吗?

在文档中,我可以看到如果错误发生在工作者中,如何发送ExceptionNotifier,而不是如何将发送到队列的队列。

1 个答案:

答案 0 :(得分:0)

Rails 的队列方面由第三方半持久数据存储处理。我们使用Redis& Resque

-

以下是good tutorial

<强>初始化程序

#app/config/initializers/redis.rb
require 'resque/server' #-> allows processing of jobs
require 'resque_scheduler' #-> allows for scheduling

uri = URI.parse(ENV["REDISCLOUD_URL"] ||= "http://localhost:6379")
Resque.redis = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password)

-

<强> Resque

这样您就可以使用redis队列将数据发送到Resque来处理它:

def your_action
    Resque.enqueue(SendEmail, [[data ref]])
end

-

<强>队列

然后,您可以使用resque来浏览Redis队列&amp;发送电子邮件:

$ rake resque:work QUEUE='*'

我知道,这是一个模糊的描述;但希望它能让您了解如何使用第三方基于队列的系统来处理为您发送电子邮件