原文来自 https://www.codecasts.com/blo...

问题

在 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元 双十一优惠券,更有机会免费领会员!
图片描述


JellyBool
16.2k 声望2k 粉丝

给学网 GeiXue.com 创始人:让每一个热爱编程的人都学有所成的精品课程。