Class: JobWorkflow::SubTaskJob
- Inherits:
-
ActiveJob::Base
- Object
- ActiveJob::Base
- JobWorkflow::SubTaskJob
- Includes:
- ActiveJob::Continuable
- Defined in:
- lib/job_workflow/sub_task_job.rb
Instance Attribute Summary collapse
-
#_context ⇒ Object
: Context?.
Class Method Summary collapse
-
.from_parent_context(context:) ⇒ Object
: (context: Context) -> SubTaskJob.
Instance Method Summary collapse
-
#deserialize(job_data) ⇒ Object
: (Hash[String, untyped]) -> void.
-
#output ⇒ Object
: () -> Output.
-
#perform(arguments) ⇒ Object
: (Hash[untyped, untyped]) -> void.
-
#serialize ⇒ Object
: () -> Hash[String, untyped].
Instance Attribute Details
#_context ⇒ Object
: Context?
47 48 49 |
# File 'lib/job_workflow/sub_task_job.rb', line 47 def _context @_context end |
Class Method Details
.from_parent_context(context:) ⇒ Object
: (context: Context) -> SubTaskJob
9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/job_workflow/sub_task_job.rb', line 9 def from_parent_context(context:) validate_sub_task_context!(context) new_context = context.dup job = new(context.arguments.to_h) new_context._job = job job._context = new_context task = new_context._task_context.task || (raise "task is not set") return job if task.enqueue.queue.nil? job.set(queue: task.enqueue.queue) end |
Instance Method Details
#deserialize(job_data) ⇒ Object
: (Hash[String, untyped]) -> void
55 56 57 58 |
# File 'lib/job_workflow/sub_task_job.rb', line 55 def deserialize(job_data) super self.serialized_job_workflow_context = job_data["job_workflow_context"] end |
#output ⇒ Object
: () -> Output
40 41 42 43 44 45 |
# File 'lib/job_workflow/sub_task_job.rb', line 40 def output context = _context raise "context is not set." if context.nil? context.output end |
#perform(arguments) ⇒ Object
: (Hash[untyped, untyped]) -> void
33 34 35 36 37 |
# File 'lib/job_workflow/sub_task_job.rb', line 33 def perform(arguments) payload = arguments.symbolize_keys self._context = build_context(payload) Runner.new(context: _context).run end |
#serialize ⇒ Object
: () -> Hash[String, untyped]
50 51 52 |
# File 'lib/job_workflow/sub_task_job.rb', line 50 def serialize super.merge({ "job_workflow_context" => _context&.serialize || serialized_job_workflow_context }.compact) end |