gpt4 book ai didi

ruby-on-rails - resque rails 4.2 deliver_later 邮件程序

转载 作者:数据小太阳 更新时间:2023-10-29 07:59:09 24 4
gpt4 key购买 nike

我有一个 Ruby on Rails 应用程序,我需要在面试前一天向申请人发送提醒邮件。为此,我计划使用 The Rescue Scheduler,我使用的是 rails v 4.2。我已经运行了 redis 服务器,我的代码如下:

    def sendemails
@user2=User.new( :firstname=> "Betterlucknexttime",:email=>)
SendEmailJob.new.perform(@user)
end

在sendEmail文件中

    class SendEmailJob < ActiveJob::Base
queue_as :default
def perform(user)
UserMailer.welcome_email(user).deliver_later
end
end

在 config/developement 中我设置了 config.active_job.queue_adapter = :resque

我检查了我的日志文件,这是我看到的:

[ActiveJob] Could not log "enqueue.active_job" event. URI::GID::MissingModelIdError: Unable to create a Global ID for User without a model id. app/jobs/send_email_job.rb:5:in perform'
app/controllers/adminusers_controller.rb:45:in sendemails'

一般而言,当我不使用 deliver_later 选项时,我的电子邮件会立即送达。但是,我需要使用 deliver_later 来发送这些电子邮件作为将来的提醒。非常感谢您的帮助!

最佳答案

因为您正在执行 User.new,所以您没有将该用户保存到数据库中。当作业开始时,数据库中没有用户可以拉取。如果您改用 User.create,这应该会按预期工作。

这是一篇描述事件作业及其使用方法的文章的链接:http://www.sitepoint.com/new-rails-shiny-activejob/

关于ruby-on-rails - resque rails 4.2 deliver_later 邮件程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33703062/

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