Laravel 5.8后台作业不在后台
我有一个库,它可以导入很多图像,我正在尝试使用Laravel背景作业。对于排队作业,我遵循Laravel文档 首先(创建表): 然后在Redis的.env文件中进行配置: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(); } 在控制器中的某个操作
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,
],
],