Laravel 执行用户自定义的定时任务

JellyBool

JellyBool

问题

在 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 创作, 转载和引用遵循 署名-非商业性使用 2.5 中国大陆 进行许可。

共有 0 条评论