started) { $job->started = $started->format("Y-m-d H:i:s"); $job->reconnectDB(); $job->save(); } $job_return = new stdClass(); $job_return->sent = 0; $pdfs_sent = 0; $defer = false; $timeout = false; if($job->result) { $job_return = json_decode($job->result); if(json_last_error() === JSON_ERROR_NONE) { $pdfs_sent = $job_return->sent; } else { $job_return = new stdClass(); $job_return->sent = 0; } } $ic = new InvoiceController(false); $ic->reconnectDB(); // main loop do { $now = new DateTime("now"); if($now->format("Y-m-d H:i:s") > $job->to_date." 23:59:59") { $timeout = true; break; } $email_return = $ic->_sendEmailInvoices(300); if($email_return["defer"]) { $defer = true; } $sent = $email_return["sent"]; $pdfs_sent += $sent; $job_return->sent = $pdfs_sent; $job->result = json_encode($job_return); //$job->return = json_encode(["sent" => $sent]); $job->reconnectDB(); $job->save(); } while($sent); // prepare job update if($timeout) { $job->status = "timeout"; } elseif($defer) { echo "email runner: deferring to next run\n"; $job->status = "defer"; } else { $finished = new DateTime("now"); $job->finished = $finished->format("Y-m-d H:i:s"); $job->status = "finished"; } $job->reconnectDB(); $job->save();