有些事情是每天都固定会做的事情,譬如每个平日早上都要看一下美股有没有崩盘才有机会财富重新分配一下,每天下午一点半台股收盘时又赚了几个便当钱,这种每天都要做但流程很繁琐的就非常适用於今天的介绍:command
先前在介绍artisan时有提到将这些繁琐的事情作成一个command这样只要一键输入即可获得服务,但想要获得股票收盘价这种服务还是需要更多的技术性的,所以还是先从基础介绍起,先来试试看以一键可以在留言板sayHello为目标来当第一个command范例吧
php artisan make:command sayHello
接着就可以在app/Console/Commands/下面找到sayHello.php档案,里面有两个属性及一个功能要特别介绍
php artisan sayHello
即可php artisan list
时可以看到每个指令都有自己的介绍,就是利用这个属性来描述该指令的用处,那就将它设定为Say hello to every by message boarduse App\Models\Message;
,然後在handle内实现功能Message::create([
'member' => 'admin',
'message' => 'Hello everyone',
]);
完成後可以使用php artisan list
来确认是不是已经有这个功能了
之後就可以使用指令来测试看看功能是否正常
php artisan sayHello
妥妥的没有问题。
另外一个小撇步可以在signature属性使用冒号来做群组分类,例如都是在处理留言板的command就在前面加上一个message:做前缀,这样command越写越多时会比较容易分类,新增一个sayHi来当范例
php artisan make:command sayHi
将sayHello的signature改为message:sayHello
sayHi的signature改为message:sayHi
此时再使用php artisan list
就可以看到这两个指令已经被归类在一起了
既然都有了一键执行的方法,能不能再更懒惰一点,让系统自己定时执行就好,连打指令都可以省下了,那就需要搭配schedule的功能了。
在/app/Console/
之下可以找到一个Kernel.php的档案将它打开,今天的目标先专注在schedule这个function就好,先将今天的command已一分钟sayHello一次、五分钟sayHi一次的频率写好。
$schedule->command('message:sayHello')->everyMinute();
$schedule->command('message:sayHi')->everyFiveMinutes();
接着来介绍一下schedule的四大指令
schedule:list
schedule:run
schedule:test
schedule:work
此时下完schedule:work後等待五分钟就可以确认一下功能是否正常了
确认每分钟都会有一个Hello并於每五分钟为单位会出现一次Hi,今天的任务就算成功了,另外要提到的是我在建立sayHi这个schedule时因为没有在上方引入Message的Model所以一直不会有sayHi的讯息写入资料库,让我找问题找了蛮久,最後是在storage/logs里的log纪录找到原因,由此可知schedule在运行时有些错误是会被直接忽略的这点要特别注意一下。
排程能做的事情无穷无尽,就像这30天的文章也是利用排程自动上传的,今天的介绍就到这边结束了,谢谢观看的各位,请记得按赞分享开启小铃铛,你的支持会让按赞数+1。
https://leetcode.com/problems/same-tree/descripti...
网页施工中,请稍後再回来 虽然昨天将子母主题做汇入,本来今天预定要选定主题做汇入,但是在参考两篇文章...
换图片就是换Sprite sprite是物件的皮,每个看的见的gameobject都有sprite,...
大家好! 今天我们要实作解析 JSON 资料,并计算资料的变异数。 我们进入今天的主题吧! 公式 母...
这篇一样是Excel复制了很多料号,然後贴入ECR受影响物件 左边一个输入框,右边是系统讯息,上面一...