首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >延迟作业和Mandrill:未初始化常量Mandrill::API

延迟作业和Mandrill:未初始化常量Mandrill::API
EN

Stack Overflow用户
提问于 2014-07-05 02:30:19
回答 1查看 667关注 0票数 3

我有邮件服务,用户可以上传一个.xls文件与电子邮件和一些其他用户相关的数据,以发送电子邮件运动。

我有一些超时问题,因为它需要一些秒来处理(就像我为每封要发送的电子邮件做一些验证和配置一样,例如:将记录保存到数据库,检查电子邮件是否在过去30天内发送,为每封电子邮件创建个性化的html代码(创建包含电子邮件地址作为参数的链接等)。

经过一些研究后,将其移到延迟作业似乎是合理的,就像这条钢轨中所建议的那样。唯一的问题是我有一个错误,上面写着uninitialized constant Mandrill::API,似乎当我运行作业时,调用require 'mandrill'不起作用。

我在模型文件中创建了任务。就像这样

代码语言:javascript
复制
class Mailer < ActiveRecord::Base
  attr_accessible :email, :lastname, :name

  def self.send_mail(emails)

    [...a lot of code here...]

    require 'mandrill'
    m = Mandrill::API.new ENV['MANDRILL_APIKEY']
    message = {
    :subject=> template.subject,
    :from_name=> template.from_name,
    :from_email=> from + "@" + email_domain,
    :to=>mails,
    :global_merge_vars=> [
      { :name => 'GREETING', :content => template.greeting},
      { :name => 'CONT1', :content => template.message},
      { :name => 'IMAGE', :content => image_url},
          ],
    :html=>email_template,
    :preserve_recipients => false,
    :merge_vars => email_contents,
    }
    sending = m.messages.send message

  end
end

在我的控制器中,我调用了Mailer.send_mails(emails),它运行得很好,但是如果我调用Mailer.delay.send_mails(emails),就会得到错误。我怎么才能解决这个问题?

我试过在课程开始时,无论是在require 'mandrill'之前还是之后添加class Mailer < ActiveRecord::Base,但是似乎没有什么效果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-11 05:00:38

确保重新启动delayed_job守护进程以获取任何代码更改。它不像Rails开发环境那样自动重新加载。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24582435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档