Slide 24
Slide 24 text
func
StartJob(cfg
gonfig.Gonfig,
dbInstance
db.Storage,
job
types.Job)
{
newJob,
err
:=
SetupJob(job.ID,
dbInstance,
cfg)
job
=
*newJob
if
err
!=
nil
{
updateJobWithError(dbInstance,
job,
err.Error())
return
}
downloadFunc
:=
downloaders.GetDownloadFunc(job.Source)
if
err
:=
downloadFunc(log,
cfg,
dbInstance,
job.ID);
err
!=
nil
{
updateJobWithError(dbInstance,
job,
err.Error())
return
}
encodeFunc
:=
encoders.GetEncodeFunc(job)
if
err
:=
encodeFunc(logger,
dbInstance,
job.ID);
err
!=
nil
{
updateJobWithError(dbInstance,
job,
err.Error())
return
}
uploadFunc
:=
uploaders.GetUploadFunc(job.Destination)
if
err
:=
uploadFunc(logger,
dbInstance,
job.ID);
err
!=
nil
{
updateJobWithError(dbInstance,
job,
err.Error())
return
}
CleanSwap(dbInstance,
job.ID);
err
!=
nil
job.Status
=
types.JobFinished
dbInstance.UpdateJob(job.ID,
job)
}
how it works?
pipeline/pipeline.go