fix(Jobs): change request state to prepare_to_finish in case of an error
This commit is contained in:
parent
d4da6aa518
commit
522b57ade4
|
@ -335,20 +335,28 @@ void Job::DoRequestContinuationJob(JobTask & job_task, size_t priority)
|
|||
cur->request->mount = cur->mount;
|
||||
cur->request->run_state = Request::RunState::job_continuation_run;
|
||||
functions->ContinueMakeFunction();
|
||||
|
||||
if( cur->request->run_state == Request::RunState::assigned_to_job )
|
||||
{
|
||||
log << log3 << "Job: this request (" << cur->request << ") has been moved to the job queue again" << logend;
|
||||
Add(cur->request->job_id, cur->request, cur->request->job, priority);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
main_log << log4 << "Job: directories have not been correctly prepared, finishing the request" << logend;
|
||||
cur->request->http_status = Header::status_500_internal_server_error;
|
||||
cur->request->run_state = Request::RunState::prepare_to_finish;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
main_log << log2 << "Job: request continuation task doesn't have a funtion set, return 500 internal error" << logend;
|
||||
cur->request->http_status = Header::status_500_internal_server_error;
|
||||
cur->request->run_state = Request::RunState::prepare_to_finish;
|
||||
}
|
||||
|
||||
if( cur->request->run_state == Request::RunState::assigned_to_job )
|
||||
{
|
||||
log << log3 << "Job: this request (" << cur->request << ") has been moved to the job queue again" << logend;
|
||||
Add(cur->request->job_id, cur->request, cur->request->job, priority);
|
||||
}
|
||||
else
|
||||
if( cur->request->run_state != Request::RunState::assigned_to_job )
|
||||
{
|
||||
cur->request->FinishRequest(); // jak cur->request->function bedzie null to nie zadzialaja funkcje templajtowe
|
||||
load_avg->StopRequest(cur->request);
|
||||
|
|
|
@ -98,7 +98,7 @@ public:
|
|||
// assigned_to_job - the request is preserved and a new job will be called
|
||||
// job_run - run in the job thread (objects are locked)
|
||||
// finished - the request is finished and the object can be removed
|
||||
enum RunState { not_assigned = 0, normal_run, assigned_to_job, job_run, job_continuation_run, finished};
|
||||
enum RunState { not_assigned = 0, normal_run, assigned_to_job, job_run, job_continuation_run, prepare_to_finish, finished};
|
||||
|
||||
RunState run_state;
|
||||
|
||||
|
|
Loading…
Reference in New Issue