我一直在将作业添加到 Laravel 中的队列中,但它们仅在我被 ssh 连接到服务器并运行以下命令时才运行:
php artisan queue:listen --tries 1 --timeout=60
我需要队列不断运行,而不依赖于上面的命令行监听器。队列是通过redis运行的,目前我唯一的配置是:
config.php
'queue' =>
array (
'default' => 'redis',
'connections' =>
array (
'sync' =>
array (
'driver' => 'sync',
),
'database' =>
array (
'driver' => 'database',
'table' => 'laravel_jobs',
'queue' => 'default',
'expire' => 60,
),
'beanstalkd' =>
array (
'driver' => 'beanstalkd',
'host' => 'localhost',
'queue' => 'default',
'ttr' => 60,
),
'sqs' =>
array (
'driver' => 'sqs',
'key' => 'your-public-key',
'secret' => 'your-secret-key',
'queue' => 'your-queue-url',
'region' => 'us-east-1',
),
'iron' =>
array (
'driver' => 'iron',
'host' => 'mq-aws-us-east-1.iron.io',
'token' => 'your-token',
'project' => 'your-project-id',
'queue' => 'your-queue-name',
'encrypt' => true,
),
'redis' =>
array (
'driver' => 'redis',
'connection' => 'default',
'queue' => 'default',
'expire' => 60,
),
),
'failed' =>
array (
'database' => 'mysql',
'table' => 'laravel_failed_jobs',
),
),
在我的 .env 文件中:
QUEUE_DRIVER=redis
我觉得我必须有一些配置不正确。