参考:https://guides.rubyonrails.org/v6.1/active_job_basics.html
1. 需要一个redis server 运行在本地 6379端口(默认端口)
2. 创建一个新的rails job
class SayHiJob < ApplicationJob
queue_as :default
# 参数就是个普通的hash
def perform(args)
# 演示如何获得参数
name = args[:name]
# 如何执行代码
User.create ......
end
end
3. 如何调用这个job
wait的单位是 s , 也可以用 wait: 10.hours
SayHiJob.set(wait: 10).perform_later({ name: 'jim', content: 'hello' })
然后这个job就会自动执行了 (10s )之后。
如果想立刻执行, 那么,就
SayHiJob.perform_later({ name: 'jim', content: 'hello' })