job的使用--执行
首先,命名和文件位置:app/jobs/xx_job.rb,
内容上:一种是继承application
cat app/jobs/application_job.rb
class ApplicationJob < ActiveJob::Base
# Automatically retry jobs that encountered a deadlock
# retry_on ActiveRecord::Deadlocked # Most jobs are safe to ignore if the underlying records are no longer available
# discard_on ActiveJob::DeserializationError
endcat app/jobs/say_hi_job.rb
class SayHiJob < ApplicationJob
queue_as :default
def perform(args)<br />
# 演示如何获得参数<br />
name = args[:name]<br />
content = args[:content]<br />
puts "in SayHiJob, name: #{name}, content: #{content}"
# 如何执行代码
avatar = Avatar.new
avatar.account_id = 1
avatar.nft_asset_id = 1
avatar.is_primary = false
avatar.save!
end
end一种是自己:
cat app/jobs/guests_cleanup_job.rb<br />
class GuestsCleanupJob < ActiveJob::Base<br />
queue_as :default def perform(*args)<br />
# Do something later<br />
end<br />
end执行: 进入consolebundle exec rails creload!<br />
Reloading...<br />
=> true<br />
irb(main):002:0> YunPianJob.perform_later<br />
Enqueued YunPianJob (Job ID: d5de572f-4f20-4db6-9263-2166b854ca07) to Async(default)<br />
=><br />
#<YunPianJob:0x0000564abab51700<br />
@arguments=[],<br />
@exception_executions={},<br />
@executions=0,<br />
@job_id="d5de572f-4f20-4db6-9263-2166b854ca07",<br />
@priority=nil,<br />
@provider_job_id="456f4b94-a56e-47ed-97a4-884aa9c9a007",<br />
@queue_name="default",<br />
@timezone="UTC"><br />
Performing YunPianJob (Job ID: d5de572f-4f20-4db6-9263-2166b854ca07) from Async(default) enqueued at 2022-06-13T01:21:30Z