読者です 読者をやめる 読者になる 読者になる

Sidekiqで動かしているjobごとにuuidがほしい

普段Railsでキューライブラリでいうとsidekiqを使っている

github.com

Job自体はRails4.2から入ったActiveJobを使っている

# app/jobs/application_job.rb
class ApplicationJob < ActiveJob::Base
end

# app/jobs/sample_job.rb
class SampleJob < ApplicationJob
  queue_as :default

  def perform
    Rails.logger.info('sample')
  end
end

今回はこのjobの中でuuidをもたせて処理をしたかった
uuidをもたせるなら SecureRandom.uuid とjob内にかければ終わりだがそもそもActiveJobが自分にjob_idというuuidを保持していた

rails/core.rb at fe1f4b2ad56f010a4e9b93d547d63a15953d9dc2 · rails/rails · GitHub

よって下記のようにすれば終わり

# app/jobs/sample_job.rb
class SampleJob < ApplicationJob
  queue_as :default

  def perform
    Rails.logger.info("uuid is #{job_id}")
  end
end