$schedule->exec () 执行 shell 命令的所在目录环境是什么?

在laravel里用定时任务执行了一些python脚本
目前都放在/var/的子目录下
现在想把它们放到laravel项目中,加入代码版本控制
这样的话,Kernel里就不能写绝对地址了(因为项目的部署目录在不同的环境下不同)
所以Kernel里的任务调度,执行的目录是什么?

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 3
songxue77

你是要把python代码重新写成php吗?

执行的目录是laravel项目的根目录

2个月前 评论
kiyoma (楼主) 2个月前
songxue77 (作者) 2个月前
kiyoma (楼主) 2个月前
kiyoma (楼主) 2个月前

有个方案:

1,把Python脚本代码保存到数据库。

2,执行定时任务的时候获取到Python脚本的代码然后动态创建目录(判断是否有目录,比如:/www/wwwroot/YOUR_APP/pythonScripts/)然后执行 python xxx命令呀~

2个月前 评论

第一种方法:

$schedule->exec (" cd 你的目录 && 执行python命令 ")

第二种方法:新建一个Command类,在里面这么写:

use Symfony\Component\Process\Process;

$process = new Process(" cd 你的目录 && 执行python命令 ");
$process->run();
dump($process->isSuccessful());
2个月前 评论
kiyoma (楼主) 2个月前
di-gua (作者) 2个月前
kiyoma (楼主) 2个月前
di-gua (作者) 2个月前
di-gua (作者) 2个月前

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!