想试试 laravel 内置的队列 按照文档的流程测试了一下 遇到了问题 不会添加队列 而是直接执行
流程是这样 求解答哪里出了问题 = =
Laravel Framework version 5.3.31 //修改队列驱动 QUEUE_DRIVER=database //创建队列表的 migration 文件 php artisan queue:table //执行 magrite 命令创建 jobs 表 php aritsan magrite //创建了个 task 任务类 php artisan make:job task //Task 类的内 public $task; public function __construct($task) { $this->task = $task; } public function handle() { Log::info('task:'.$this->task); } //路由内容 Route::get('/',function (){ dispatch(new App\Jobs\Task('test queue')); }); //访问首页之后表中没有数据 LOG 直接写入了数据 [2017-08-09 11:05:49] local.INFO: task:test queue
1 myc0210 2017-08-09 11:40:31 +08:00 ![]() 整个 class 贴一下 有 use queueable 的 trait 吗。没有的话 不会用到队列的会直接执行 |
2 ylsc633 2017-08-09 11:40:55 +08:00 ![]() .env 里 QUEUE_DRIVER 可修改了? 默认等于 sync 你可以修改为 redis.... |
![]() | 3 chenset 2017-08-09 11:41:08 +08:00 ![]() 1.队列由 database 驱动的话, 队列执行完之后表中的队列数据会被删除的吧? 至少使用 redis 驱动时就是这样. 2. .env 有没有缓存? .env 修改后有没有 php artisan config:clear 3. 有没有 php artisan queue:work ? 你可以显性的输出字符串看看程序是否异步执行了. ``` public function handle() { dump(__LINE__); Log::info('task:'.$this->task); } ``` |
![]() | 4 2ME OP |
![]() | 5 2ME OP 找到原因了.. 重启 php artisan serve 就好了 谢谢大家解答 |