laravel定时任务,如何改用接口调用呢?
1. 运行环境
K8S
1). 当前使用的 Laravel 版本?
5.8
2). 当前使用的 php/php-fpm 版本?
PHP 版本:7.4
php-fpm 版本:7.4
3). 当前系统
4). 业务环境
5). 相关软件版本
2. 问题描述?
目前有个问题是,项目要使用k8s部署,但是项目里有一些定时任务需要执行,想把定时任务通过调用接口的方式,每分钟调用接口,达到crontab的执行的效果。
public function index()
{
$res = Artisan::call('schedule:run');
dd($res);
}
目前代码是这样写的,我发现调用接口没有执行对应的定时任务
3. 您期望得到的结果?
如何实现通过接口执行定时任务?
你在index接口里面直接调用,像这样exec(“php /项目路径/artisan schedule:run”);要指定到项目的具体路径,我是这么干的;
如果不配置crontab的话,通过接口控制调用脚本,就直接在接口里面加逻辑调用,调用方式就是exec(“php /项目路径/artisan command:脚本名称”);