Update ActiveJob::Chain to fire off a special job in response to a error in one of the jobs in the chain. Basically makes ActiveJob::Chain work similar to a Javascript Promise (but without argument passing).
This change was originally made to prevent project and blueprint jobs from failing and getting stuck in Building or Upgrading states. It may not be entirely necessary, but it does make the job processing more robust.
Update ActiveJob::Chain to take an failure job in addition to a success job: ActiveJob::Chain.new(MyJob.new).then(SuccessJob.new, FailJob.new)
Update ActiveJob::Chain with a catch method: ActiveJob::Chain.new(MyJob.new).catch(FailJob.new)
Create a SetStatusJob to set the status of a project or blueprint
Update project job chains to use new error handling
Update ActiveJob::Chain to fire off a special job in response to a error in one of the jobs in the chain. Basically makes ActiveJob::Chain work similar to a Javascript Promise (but without argument passing).
This change was originally made to prevent project and blueprint jobs from failing and getting stuck in
Building
orUpgrading
states. It may not be entirely necessary, but it does make the job processing more robust.ActiveJob::Chain.new(MyJob.new).then(SuccessJob.new, FailJob.new)
catch
method:ActiveJob::Chain.new(MyJob.new).catch(FailJob.new)
SetStatusJob
to set the status of a project or blueprint