class Sequent::Core::Workflow
Attributes
abstract_class[RW]
skip_autoregister[RW]
Private Class Methods
on(*args, **opts, &block)
click to toggle source
Calls superclass method
# File lib/sequent/core/workflow.rb, line 16 def self.on(*args, **opts, &block) decorated_block = ->(event) do begin old_event = CurrentEvent.current CurrentEvent.current = event instance_exec(event, &block) ensure CurrentEvent.current = old_event end end super(*args, **opts, &decorated_block) end
Private Instance Methods
after_commit(ignore_errors: false, &block)
click to toggle source
Workflow#after_commit
will accept a block to execute after the transaction commits. This is very useful to isolate side-effects. They will run only on the transaction’s success and will not be able to roll it back when there is an exception. Useful if your background jobs processor is not using the same database connection to enqueue jobs.
# File lib/sequent/core/workflow.rb, line 40 def after_commit(ignore_errors: false, &block) Sequent.configuration.transaction_provider.after_commit(&block) rescue StandardError => e if ignore_errors Sequent.logger.warn("An exception was raised in an after_commit hook: #{e}, #{e.inspect}") else raise e end end
execute_commands(*commands)
click to toggle source
# File lib/sequent/core/workflow.rb, line 29 def execute_commands(*commands) Sequent.configuration.command_service.execute_commands(*commands) end