Module: Arj::Extensions::Shard

Included in:
Test::JobWithShard
Defined in:
lib/arj/extensions/shard.rb

Overview

Adds a shard attribute to a job class.

Example usage:

class AddShardToJobs < ActiveRecord::Migration[7.1]
  def change
    add_column :jobs, :shard, :string
  end
end

class SampleJob < ActiveJob::Base
  include Arj::Extensions::Shard
end

SampleJob.set(shard: 'some shard').perform_later

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#shardObject

An optional String representing a shard.



21
22
23
# File 'lib/arj/extensions/shard.rb', line 21

def shard
  @shard
end

Instance Method Details

#deserialize(job_data) ⇒ Object

Overridden to add support for deserializing the shard attribute.



34
35
36
# File 'lib/arj/extensions/shard.rb', line 34

def deserialize(job_data)
  super.tap { @shard = job_data['shard'] }
end

#serializeObject

Overridden to add support for serializing the shard attribute.



29
30
31
# File 'lib/arj/extensions/shard.rb', line 29

def serialize
  super.merge('shard' => @shard)
end

#set(options = {}) ⇒ Object

Overridden to add support for setting the shard attribute.



24
25
26
# File 'lib/arj/extensions/shard.rb', line 24

def set(options = {})
  super.tap { @shard = options[:shard] if options.key?(:shard) }
end