问题
在 Laravel 中,如果我们想使用定时任务的话,对应我们开发人员来说非常简单,只需要参照官网的定时任务文档基本就可以实现了。
然而如果我们是在开发一个运维类似的 Sass 应用的时候,我们如何实现用户可以自定义定时任务,然后再在我们的应用中执行?
解决方案
其实解决方案可以非常的简单:在 app/Console/Kernel.php
文件里面,加上类似下面的一小段代码:
if (Schema::hasTable('tasks')) {
$tasks = Task::all();
foreach ($tasks as $task) {
$schedule->call(function() use ($task) {
// 主要这里,在记录用户的定时任务的时候
// 我们一定要记录定时任务的执行频次
})->cron($task->frequency);
}
上面的代码其实很简单,但是对于前文提到的应用场景其实很有效果,当然,你也是可以在这里结合 Laravel 的任务调度来完成的。
总结
以上就简单实现了执行用户自定义定时任务
的需求。你有更好的方案可分享的时候,劳烦在评论处告知。
关注 codecasts 公众号,即可领取 100元 双十一优惠券,更有机会免费领会员!