1.修改根目录
Laravel可配置多种队列驱动,包括 "sync", "database", "beanstalkd", "sqs", "redis", "null"(具体参见app/config/queue.php) 该位置具体是什么请查看 2.创建数据库队列表(database方式)为了使用 php artisan queue:table 生产一张队列表 php artisan migrate mysql版本5.7.7以下可能会报如下错误 解决方案 打开 一定要删除已经生成的job数据表,否者汇报如下错误 \Schema::defaultStringLength(191); //add fixed sql 数据库最终效果 3.生成任务类在你的应用程序中,队列的任务类都默认放在 如果这个目录不存在,那当你运行 你可以用以下的 Artisan 命令来生成一个新的队列任务: php artisan make:job SetLog 4.在队列类里面的handle方法中写上业务逻辑(比如发送网络请求,发送邮件等等,这里简单写个日志代替)protected $message; /** * Create a new job instance. * * @return void */ public function __construct($message) { $this->message = $message; } /** * Execute the job. * * @return void */ public function handle() { \Log::info($this->message); } 5.在控制器中加入一个测试方法,直接调用队列类的 dispatch方法,类似生产了一个任务public function index(Request $request){ SetLog::dispatch(date('Y-m-d H:i:s') . "进入了系统"); } 这时,由于队列还没开启,数据库的队列表中会有一个任务,等待队列启动后执行 6.执行命令开启队列php artisan queue:work 这时,队列表中的任务执行后就会自动删除了,类似消费了任务 |
|