chaps-io / gush

Fast and distributed workflow runner using ActiveJob and Redis
MIT License
1.03k stars 103 forks source link

Add Gush::Job#skip! (refresh) #109

Open natemontgomery opened 4 months ago

natemontgomery commented 4 months ago

I went ahead and refreshed @ace-subido's original PR (https://github.com/chaps-io/gush/pull/66) with his permission. He did the heavy lifting, so props to him, I just added the integration spec requested by @pokonski and merged in the latest master.

From the original discussion in https://github.com/chaps-io/gush/issues/65 I gather there was some divergence of opinions on just what the semantics should be for the skipped state. Personally I think there is a clear space for a state that involves halting execution of a Job within a Workflow but not the Workflow itself (ie not failed).

I also can see the reason for thinking that there is a generalization of this semantic to more of the Workflow lifecycle (ie skip_remaining! as some suggested). I have noodled a bit on this idea and have some initial attempts that I think might get somewhere but I think it might be worth getting this more Job specific skip method in first.

Welcome all feedback of course!

natemontgomery commented 3 months ago

@krzyzak if you want to have a fresh discussion since original was so old I can go ahead and update the Issue or start a new one. For my use case this does help simplify the conditions in my workflows so its a win for me but I know that is just the one case :)