Я отправляю полезную нагрузку в службу, чтобы распечатать PDF прямо из задания. Я запускаю задание локально, используя artisan queue:work database
, а handle()
вызывается до той части, где я отправляю http-запрос с помощью Guzzle.
handle() {
try {
print_r("Assembling invoice data\n");
// ...
// ... doing some manual serialising
// ...
$client = new Client();
print_r("Sending pdf print job\n");
$response = $client->request("POST", $url, [
"json" => [
"sender_info" => $senderInfo,
"contact" => $contact,
"invoice_lines" => $invoiceLines,
"invoice_totals" => $invoiceTotals,
"invoice_footer" => $this->invoice->footer,
"invoice_note" => $this->invoice->note,
"invoice_meta" => [
"key" => $this->invoice->meta_key,
"value" => $this->invoice->meta_value
],
"invoice_date" => $this->invoice->date->format("d-m-Y"),
"invoice_due_date" => $this->invoice->due_date->format("d-m-Y"),
"invoice_color" => $this->invoice->color,
"invoice_number" => $this->invoice->number_prefix . $this->invoice->number_value,
"logo" => $this->invoice->logo,
"id" => $this->invoice->id
]
]);
print_r($response);
if ($response->getStatusCode() !== 200) {
print_r("pdf print job failed\n");
// @todo: send message to bugsnagger
throw new \Exception("Generating a pdf failed");
}
print_r("Pdf print job complete\n");
} catch (Exception $e) {
print_r($e);
}
}
Я проверил, что задание выполняется по запросу клиента, но не после, прочитав операторы print_r()
. Когда работа выполнена, все, что я вижу, это;
[2018-07-01 09:04:36] Processing: App\Jobs\ProcessNewInvoice
Assembling invoice data
Sending pdf print job
... 255 раз за секунду.
Сначала у меня был этот код вне работы Laravel. Это, казалось, сработало. Не таймауты или тому подобное. Теперь у меня проблемы с выяснением того, где это не получается. Любой совет?