У меня есть работа, которая локально работает безупречно, но на производстве я сталкиваюсь с проблемами, когда она не работает. Я охватил весь handle()
символом try/catch
, и я не вижу, чтобы в Bugsnag ничего регистрировалось, несмотря на множество других исключений, которые были развернуты в других местах.
public function handle() {
try {
// do stuff
} catch (\Exception $e) {
Bugsnag::notifyException($e);
throw $e;
}
}
Согласно Laravel Horizon, это задание очереди выполняется в течение 0.0026001930236816406
секунд, и я никогда не замечаю его работы и не вижу других ошибок. в таблице failed_jobs
, поскольку это относится к этой работе.
config / queue.php
'redis' => [
'driver' => 'redis',
'connection' => 'default',
'queue' => 'default',
'retry_after' => (60 * 10), // 10 minutes
'block_for' => null,
],
config / horizon.php
'environments' => [
'production' => [
'supervisor' => [
'connection' => 'redis',
'queue' => [
'default',
],
'balance' => 'auto',
'processes' => 10,
'tries' => 3,
// 10 seconds under the queue's retry_after to avoid overlap
'timeout' => (60 * 10) - 10, // Just under 10 mins
],
Если что-то заставляет эту работу повторяться снова и снова, как я могу узнать, как это сделать? Я в растерянности.
На данный момент расследование
- Я ожидаю, что смогу выполнить запрос:
SELECT DISTINCT exception, COUNT(id) as errors
FROM failed_jobs
WHERE payload LIKE '%[TAG-JOB-HAS]%'
GROUP BY exception;
Чтобы увидеть больше, чем это сообщение об ошибке:
Задание выполнялось слишком много раз или выполнялось слишком долго
но это все, что я вижу.
- Панель мониторинга Laravel Horizon показывает, что рассматриваемое задание выполняется ‹1 секунду, поэтому я знаю, что на самом деле это не так. тайм-аут.
Bugsnag::notifyException($e)
вызывает исключение, заставляющее Laravel повторно запрашивать ваше задание для повторной попытки? - person Jamesking56   schedule 05.11.2018// do stuff
? Делает ли он что-нибудь странное, например, call exit () или die ()? - person Travis Britz   schedule 06.11.2018tries
options:php artisan queue:work --tries=3
, и вы должны проверить это в документе laravel.com/docs/5.5/queues#failed-job-events - person bangnokia   schedule 06.11.2018\Throwable
вместо\Exception
.\Exception
не будет обнаруживать внутренние ошибки PHP. Это тебе что-нибудь даст? Также, как уже упоминалось, убедитесь, что проблема не в Bugsnag. - person patricus   schedule 08.11.2018