gpt4 book ai didi

ruby-on-rails-3 - 延迟作业和 Mandrill:未初始化的常量 Mandrill::API

转载 作者:行者123 更新时间:2023-12-02 01:47:43 29 4
gpt4 key购买 nike

我有邮件服务,用户可以在其中上传包含电子邮件和一些其他用户相关数据的 .xls 文件以发送电子邮件事件。

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

经过一些研究,将其移动到 delayed job似乎是合理的,如 this rails cast 中所建议的那样.唯一的问题是我遇到了一个错误 uninitialized constant Mandrill::API ,似乎当我运行作业时,调用 require 'mandrill'不起作用。

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

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

我从我的 Controller 调用 Mailer.send_mails(emails)它工作得很好,但如果我调用Mailer.delay.send_mails(emails)我得到了错误。我该如何解决这个问题?

我试过添加 require 'mandrill'在上课之前和之后class Mailer < ActiveRecord::Base但似乎没有任何效果

最佳答案

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

关于ruby-on-rails-3 - 延迟作业和 Mandrill:未初始化的常量 Mandrill::API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24582435/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com