时间:2021-07-01 10:21:17 帮助过:4人阅读
报错信息:
报错信息:
make
是创建php文件的命令,你截图里的make:command
是创建一个命令行任务,比如你创建了一个命令test
,就可以在命令行执行 php artisan test
来执行这个 test 任务。
用于队列执行的任务一般用 "Job" ,通过 php artisan make:job
创建一个job类,然后在代码中用 dispatch(new FooJob)
来执行这个任务。如果需要这个job在队列(queue)中执行(异步),job类实现ShouldQueue
即可。把job加到queue中后,这个队列queue本身也是要启动的,才能保证加进去的job可以按计划执行,启动队列用php artisan queue:work
命令行。官方文档对这些都说的很清楚,多看几遍多试试就弄通了。
https://laravel.com/docs/5.3/...
中文:https://laravel-china.org/doc...
创建事件(event)监听者(listener)文件时可以加参数 queued
用于标记这个listener需要在队列中异步执行,比如 php artisan make:listener Foobar --queued
, 在EventServiceProvider
中定义了事件event与listener的对应关系。在代码中使用 event()
函数触发一个事件,框架会根据EventServiceProvider中定义的监听者来调用其代码,如果监听者是队列的,就把它加入到队列中。
Laravel中的事件、任务、监听、通知都与队列有关系。但是command(命令行)跟队列没关系,command可以理解为是跟在php artisan
后面执行的一个命令行工具。命令行工具可以加入系统的计划任务cron用于按照计划时间来执行,比如每天凌晨3点重启服务器。Laravel提供了一种便捷的方法实现系统的cron计划任务,在app/Console/Kernel.php
中的schedule
方法中写即可。
不存在--queued选项,你是要做啥操作