У меня есть проект Laravel 5. Это мультитенантный проект, поэтому у меня есть проект одной папки с несколькими базами данных.
Когда я использую php artisan queue:listen
, он работает только с текущими настройками базы данных. Я использую драйвер очереди database
, поэтому у каждого арендатора есть своя собственная таблица уведомлений. Как настроить прослушиватель очереди для проверки всех заданий базы данных?
1 ответ
Если вы хотите продолжить использование драйвера database
, я бы предложил создать другую базу данных, которая будет содержать все ваши задания в очереди и неудачные задания.
Хотя его нет в конфигурации и нет в документации, после просмотра кода, похоже, вы сможете добавить параметр connection
в конфигурацию очереди, и тогда очередь будет взаимодействовать с база данных, указанная этим соединением.
Итак, в вашем config/database.php
определите новое соединение для вашей базы данных очереди:
'connections' => [
// your existing connections
'queue' => [
'driver' => 'mysql',
'database' => 'your-queue-database',
// rest of connection information (host, port, etc)
],
],
Затем в своем config/queue.php
скажите очереди базы данных использовать новое соединение:
'connections' => [
'database' => [
'driver' => 'database',
'connection' => 'queue', // connection name from database config
'table' => 'jobs',
'queue' => 'default',
'retry_after' => 90,
],
]
Другой вариант - перейти к другому драйверу очереди. Настройте redis, sqs или beanstalk.
Похожие вопросы
Новые вопросы
php
PHP — это широко используемый язык сценариев общего назначения с открытым исходным кодом, мультипарадигмальный, динамически типизированный и интерпретируемый, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.
redis
, как увидеть текущую ожидающую работу или неудачную, как вdatabase
. чтобы я знал, что-то не так или какая-то работа работает не так, как ожидалось? Кстати, я использую laravel forge для настройки сервера.failed_jobs
в вашей базе данных, когда они превышают максимальное количество попыток, разрешенное работником очереди.