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
-
#shard ⇒ Object
An optional String representing a shard.
Instance Method Summary collapse
-
#deserialize(job_data) ⇒ Object
Overridden to add support for deserializing the
shard
attribute. -
#serialize ⇒ Object
Overridden to add support for serializing the
shard
attribute. -
#set(options = {}) ⇒ Object
Overridden to add support for setting the
shard
attribute.
Instance Attribute Details
#shard ⇒ Object
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 |
#serialize ⇒ Object
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( = {}) super.tap { @shard = [:shard] if .key?(:shard) } end |