laravel 怎么实现crontab的编写呢, 官网教程说要在 /app/Console/Kenel.php 里的shedule函数中写。 但是这样代码很多不美观。
目前想法要点:
可以复制artisian 的文件到 app/crontab(新目录) 中。 重命名一下作为新的脚本。
根据artisian里面的代码做修改。。 示例如下:
#!/usr/bin/env php <?php require __DIR__.'/bootstrap/autoload.php'; $app = require_once __DIR__.'/bootstrap/app.php'; $kernel = $app->make(Illuminate\Contracts\Console\Kernel::class); $status = $kernel->handle( $input = new Symfony\Component\Console\Input\ArgvInput, new Symfony\Component\Console\Output\ConsoleOutput ); $kernel->terminate($input, $status); exit($status);
其中,我的想法应该是可以将handle里的东西改成自己要执行的函数。 但是,查了下handle函数参数是一个$request ,接下去就不明白怎么实现了。有会的朋友望不吝赐教哈。
巴扎黑2017-05-16 16:53:05
直接使用call方面 把你的逻辑放到匿名函数里即可
$schedule->call(function () {
DB::table('recent_users')->delete();
})->daily();