想试试 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 1
整个 class 贴一下 有 use queueable 的 trait 吗。没有的话 不会用到队列的会直接执行
|
2
ylsc633 2017-08-09 11:40:55 +08:00 1
.env 里 QUEUE_DRIVER 可修改了?
默认等于 sync 你可以修改为 redis.... |
3
chenset 2017-08-09 11:41:08 +08:00 1
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 就好了 谢谢大家解答
|