gpt4 book ai didi

ruby-on-rails - NotImplementedError(使用排队后端...)使用delayed_job

转载 作者:行者123 更新时间:2023-12-04 03:53:58 28 4
gpt4 key购买 nike

在我的 Rails 应用程序 (4.2.4) 中,我一直在尝试让异步邮件发送工作。

我安装了 delay_job 作为我的队列适配器,并在几个地方将它设置为适配器:config/application.rb、config/environments/{development,production}.rb 和 config/initializers/active_job.rb。

安装:

我将此添加到我的 Gemfile 中:

gem 'delayed_job_active_record'

然后,我运行了以下命令:
$ bundle install
$ rails generate delayed_job:active_record
$ rake db:migrate
$ bin/delayed_job start

在 config/application.rb、config/environments/production.rb、config/environments/development.rb 中:
config.active_job.queue_adapter = :delayed_job

在 config/initializers/active_job.rb 中(在上述方法不起作用时添加):
ActiveJob::Base.queue_adapter = :delayed_job

我还为 delay_job 运行了 ActiveRecord 迁移,并在运行我的服务器之前启动了 bin/delayed_job。

话虽如此,任何时候我尝试:
UserMailer.welcome_email(@user).deliver_later(wait: 1.minutes)

我收到以下错误:
NotImplementedError (Use a queueing backend to enqueue jobs in the
future. Read more at http://guides.rubyonrails.org/active_job_basics.html):
app/controllers/user_controller.rb:25:in `create'
config.ru:25:in `call'

我的印象是 delay_job 是一个排队后端......我错过了什么吗?

编辑:

我也不能让 sucker_punch 工作。在捆绑器中安装吸盘冲床时,并使用:
config.active_job.queue_adapter = :sucker_punch

在 config/application.rb 中,我得到相同的错误和堆栈跟踪。

最佳答案

如果您在开发环境中遇到此问题,即使您使用的是像 Sidekiq 这样能够进行异步作业的适配器,请确保 Rails.application.config.active_job.queue_adapter设置为 :async而不是 :inline .

# config/environments/development.rb

Rails.application.config.active_job.queue_adapter = :async

关于ruby-on-rails - NotImplementedError(使用排队后端...)使用delayed_job,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37280252/

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