mod completion;
mod failure;
use std::sync::Arc;
use std::time::Duration;
use graphile_worker_job::Job;
use super::errors::{ReleaseJobError, RunJobError};
use super::WorkerRunner;
pub(super) async fn release_job(
job_result: Result<(), RunJobError>,
job: Arc<Job>,
worker: &WorkerRunner,
duration: Duration,
) -> Result<(), ReleaseJobError> {
match job_result {
Ok(()) => completion::release_completed_job(job, worker, duration).await,
Err(error) => failure::release_failed_job(error, job, worker).await,
}
}