CHNAGE_JOB_FAILED_CAPTURED&FILE_STATUS_UPDATED

This commit is contained in:
velz 2024-08-01 10:29:47 +05:30
parent 2cf9201337
commit b8df71c1a0
2 changed files with 25 additions and 4 deletions

View File

@ -6,6 +6,7 @@ namespace App\Controllers;
use App\Models\JobModel;
use App\Models\FileModel;
class JobWorker extends AdminController
{
const STATUS_DONE = 'done';
@ -287,23 +288,24 @@ class JobWorker extends AdminController
try
{
$response = $jobHandler($payload,$job->id);
$job_status = self::STATUS_DONE;
}
catch(\Exception $e)
{
$job_status = self::STATUS_FAILED;
$runtime = $runtime === null ? microtime(true) - $start : $runtime;
$response = ['file_name' => $e->getFile(),'error' => $e->getMessage(),'line_no' => $e->getLine(),'info' => $e->getTraceAsString()];
$response = ['file_name' => $e->getFile(),'error' => $e->getMessage(),'line_no' => $e->getLine(),'info' => $e->getTraceAsString(),'scope' => 'task failed'];
}
$runtime = microtime(true) - $start;
$job_status = self::STATUS_DONE;
}
catch (\Exception $e)
{
//die();
$job_status = self::STATUS_FAILED;
$runtime = $runtime === null ? microtime(true) - $start : $runtime;
$response = ['file_name' => $e->getFile(),'error' => $e->getMessage(),'line_no' => $e->getLine(),'info' => $e->getTraceAsString()];
$response = ['file_name' => $e->getFile(),'error' => $e->getMessage(),'line_no' => $e->getLine(),'info' => $e->getTraceAsString(),'scope' => 'worker failed'];
}
$db->query("UPDATE jobs SET status=?, run_time=?, response=? WHERE id=? AND uuid=?", [
@ -313,6 +315,21 @@ class JobWorker extends AdminController
$job->id,$job->uuid
]);
//update file status if this job is directly linked with a file id
if($job_status == self::STATUS_FAILED)
{
//get file from job payload
if(array_key_exists('file_id', $payload) && $payload['file_id'] != NULL && $payload['file_id'] != "" && is_numeric($payload['file_id']) && count($payload) == 1)
{
$fileModel = new FileModel();
$fileModel->where('id', $payload['file_id'])
->set(['status' => 'failed','reason' => json_encode(['error_type' => 0,'error_summary' => [0],'error_data' => 'System Error, please contact Admin/Support team']) ])
->update();
}
}
// echo "Job $job->id $job_status. Response - $response \n";
// echo "Job $job->id $job_status \n";
SELF::streamOutput("Job $job->id $job_status \n");

View File

@ -476,6 +476,10 @@ function fetchFileError(file_id) {
var err_id = parseInt(key);
var err_count = file_error_data['error_summary'][key];
switch (err_id) {
case 0:
file_error_html +=
"<strong>"+file_error_data['error_data']+"</strong>";
break;
case 1:
file_error_html +=
"<strong>Mandatory values missing</strong> <span class='badge badge-danger float-right'>" +
@ -562,7 +566,7 @@ function fetchFileError(file_id) {
// console.log('file_error_html_2', file_error_html)
}
if (err_id != 5 && err_id != 6) {
if (err_id != 5 && err_id != 6 && err_id != 0) {
file_error_html += (file_error_html != "" ?
"<a href ='<?php echo base_url()?>" +
"employee/excel_error/" + file_id +