gpt4 book ai didi

ruby-on-rails - 在 X 分钟内开始工作

转载 作者:行者123 更新时间:2023-12-04 16:09:00 25 4
gpt4 key购买 nike

我正在尝试在执行 Controller 操作 3 分钟后运行作业。

我用 DelayedJob 试过这个:

# in my controller

def index
@books = Book.all
Delayed::Job.enqueue(ReminderJob.new(params[:user_id]))
end

而在 ReminderJob.rb文件:
class ReminderJob < Struct.new(:user_id)
def perform
p "run reminder job"
# do something
end
handle_asynchronously :perform, :run_at => Proc.new { 3.minutes.from_now }
end

但是,在访问索引页面时,我在日志中没有看到任何内容,3 分钟后什么也没有发生。

我做错了什么 ?是否有另一种推荐的方法可以在不使用 sleep 的情况下“在 X 分钟内”运行任务? ?

最佳答案

在这种情况下,我将使用 rails 的内置包 ActiveJob .
here如何设置和基本用法。您可以 use delayed_job as the backend .

在您的情况下,此代码将起作用:

def index
user = User.find(params[:user_id])
ReminderJob.set(wait: 3.minutes).perform_later(user)
end

和你的工作:
class ReminderJob < ApplicationJob # assumes you have a /app/jobs/application_job.rb
def perform(user)
# do something with the user
end
end

关于ruby-on-rails - 在 X 分钟内开始工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38564501/

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