Created by: xdc0
This PR makes some improvements on the current Job#retry
implementation:
- The retry operation is now implemented through a script, to follow suit with the other operations
- The retry operation does several checks while attempting to retry a job:
- It checks if the job exists, so that a non-existent job can be accidentally retried
- It checks if the job is currently locked, to avoid possible corruption on job data
- It checks if the job is actually failed, so it avoids retrying job that are in any other state that is not failed.