DSL playground
Gush cloned without ActiveJob but requried Sidekiq. This project is for researching DSL purpose
Installation
gem 'dwf', '~> 0.1.1'
Execute flow
Declare jobs
require 'dwf'
class A < Dwf::Item
def perform
puts "#{self.class.name} Working"
sleep 2
puts "#{self.class.name} Finished"
end
end
class E < A; end
class B < A; end
class C < E; end
class D < E; end
Declare flow
require 'dwf'
class TestWf < Dwf::Workflow
def configure
run A
run B, after: A
run C, after: A
run E, after: [B, C]
run D, after: [E]
end
end
Execute flow
wf = TestWf.create
wf.start!
Output
A Working
A Finished
B Working
C Working
B Finished
C Finished
E Working
E Finished
D Working
D Finished