gpt4 book ai didi

ruby-on-rails - Ruby on Rails 延迟作业本地无法运行

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

我正在处理事件记录 gem 的延迟作业 https://github.com/collectiveidea/delayed_job我正在尝试将作业设置为在我的应用程序中发生事件后运行五分钟。五分钟后,我需要更新一些数据库。我试过 rake jobs:work 和 RAILS_ENV=development script/delayed_job start。在此之前,我已经运行了 bundle install、rails generate delayed_job:active_record 和 rake db:migrate。我有一个彩票网站,需要每五分钟检查一次中奖者并为中奖者更新 token 。

我等了五分钟,但我的本地应用程序没有更新。

这是我目前所拥有的:

gem 文件:

 gem 'delayed_job_active_record'

gem "daemons"

工作(位于 lib 中)

class WinnersJob < Struct.new(:blast_id)
def perform
...
end

Controller

 require 'winners'
Delayed::Job.enqueue(WinnersJob.new(blast.id), 1, 5.minutes.from_now)
end

最佳答案

我认为您必须使用工头在本地启动后台工作人员。以下内容适用于我的 Mac。

来自 Heroku 文档:

然后您需要告诉您的应用程序处理放入您的作业队列的作业,您可以通过将此添加到您的 Procfile 来实现:

worker:  bundle exec rake jobs:work

现在,当您使用 Foreman 启动您的应用程序时,它将开始处理您的作业队列。

foreman start

话虽如此,除非您在 Mac 上部署,否则它们是否在本地运行并不重要。 (我在 让它工作后注意到了这一点。)只有当它在您的服务器上工作时才重要。如果您在 Heroku 上部署,则延迟作业运行良好。

引用:

https://devcenter.heroku.com/articles/delayed-job
https://devcenter.heroku.com/articles/procfile

关于ruby-on-rails - Ruby on Rails 延迟作业本地无法运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13416439/

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