Home Rails Activejob的使用
Post
Cancel

Rails Activejob的使用

参考: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' })

This post is licensed under CC BY 4.0 by the author.