Laravel 5.8后台作业不在后台

Laravel 5.8后台作业不在后台,laravel,laravel-5,queue,Laravel,Laravel 5,Queue,我有一个库,它可以导入很多图像,我正在尝试使用Laravel背景作业。对于排队作业,我遵循Laravel文档 首先(创建表): 然后在Redis的.env文件中进行配置: REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=43216 创建作业: php artisan make:job CarsJob 角豆: 公共函数句柄() { $cars=新汽车库(); $CarsLibrary->importAll(); } 在控制器中的某个操作

我有一个库,它可以导入很多图像,我正在尝试使用Laravel背景作业。对于排队作业,我遵循Laravel文档

首先(创建表):

然后在Redis的.env文件中进行配置:

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=43216
创建作业:

php artisan make:job CarsJob
角豆:

公共函数句柄()
{
$cars=新汽车库();
$CarsLibrary->importAll();
}
在控制器中的某个操作中分派作业:

首先,我尝试过:

$importCarsJob=(新的importCarsJob())->onQueue('import_cars');
$this->dispatch($importCarsJob);
第二,我尝试过:

$importCarsJob=new importCarsJob();
$this->dispatch($importCarsJob);
我已经在我的主机中启用了Redis。它是共享主机

如果访问URL,我会看到此作业不在后台,因为完成请求需要一分钟以上的时间

编辑:
env
文件在上面,这是
config/queue.php

    'connections' => [

    'sync' => [
        'driver' => 'redis',
    ],
    ... other drivers like beanstalkd

    'database' => [
        'driver' => 'database',
        'table' => 'jobs',
        'queue' => 'default',
        'retry_after' => 90,
    ],


    'redis' => [
        'driver' => 'redis',
        'connection' => 'default',
        'queue' => env('REDIS_QUEUE', 'default'),
        'retry_after' => 90,
        'block_for' => null,
    ],

],
  • 我在
    env
    文件中没有
    REDIS\u队列

您似乎没有在
config/queue.php
中将队列连接从
sync
更新为
redis
(或环境变量
queue\u connection
)。
sync
驱动程序将立即执行作业,而不会将作业推送到队列中


顺便说一下,如果使用redis队列驱动程序,则不需要队列数据库表

谢谢,有一个进展,现在我得到,
RedisConnector
中的
undefined index queue
警告,
connectt
您确定
.env
config/queue.php
中的设置正确吗?可能会将这两个文件的完整内容添加到您的问题中(而不是密码/机密或
.env
应用程序密钥!)。您不应该更改
同步连接的
驱动程序
!您应该将
queue.default
选项从
sync
更改为
redis
(或者您也可以在
.env
文件中使用
queue\u CONNECTION=redis
)。这里的配置有点混乱,但您不需要更改连接,只需要更改选定的连接。每当更新代码时,您都需要重新启动队列工作程序。使用日志记录查看队列中发生了什么。如果没有进一步的信息,很难为您提供帮助。但由于这似乎是一个完全不同的话题,我建议你尽可能详细地提出一个新问题。
    'connections' => [

    'sync' => [
        'driver' => 'redis',
    ],
    ... other drivers like beanstalkd

    'database' => [
        'driver' => 'database',
        'table' => 'jobs',
        'queue' => 'default',
        'retry_after' => 90,
    ],


    'redis' => [
        'driver' => 'redis',
        'connection' => 'default',
        'queue' => env('REDIS_QUEUE', 'default'),
        'retry_after' => 90,
        'block_for' => null,
    ],

],