先在根目录下创建config文件,然后从vendor/laravel/lumen-framework/config下将database.php以及queue.php复制到config文件下。
在.env文件下配置数据库相关信息,如下图所示
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=MyTest
DB_USERNAME=
DB_PASSWORD=
数据库连接
再添加上
QUEUE_DRIVER=database
依次执行
$php artisan make:migration create_jobs_table --create=jobs
$php artisan make:migration create_failed_jobs_table --create=failed_jobs
$php artisan migrate
执行完后会在database/migrations文件下看到create_failed_jobs_table.php跟create_jobs_table.php
生成器
在app/Jobs文件夹下
class ExampleJob extends Job
{
/**
* Create a new job instance.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
echo "hello";
}
}
队列中的执行内容都在handle里执行,需要的业务逻辑都写在handle函数中实现。
在任意一个控制器中
class Controller extends BaseController
{
public function hello()
{
echo"test";
dispatch(new ExampleJob());
}
}
dispatch函数会将任务推进队列中。
然后在命令行中执行
php artisan queue:work
即可看到消息队列等待任务进入