Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果另一个任务结束,是否开始另一个任务?_Php_Cron_Crontrigger - Fatal编程技术网

Php 如果另一个任务结束,是否开始另一个任务?

Php 如果另一个任务结束,是否开始另一个任务?,php,cron,crontrigger,Php,Cron,Crontrigger,我有7个cron作业,必须按指定顺序运行 所以我必须按顺序给他们打电话。但我的问题是,如果上一个cronjob完成了,我如何触发下一个cronjob 我想写一个脚本来触发每个cronjob,但要触发下一个,我需要知道我的上一个cronjob是否已经结束 我更喜欢PHP创建一个shell脚本或执行以下操作: 0 */5 * * * php /var/www/html/project1/cron.php && php /var/www/html/project2/cron.php &

我有7个cron作业,必须按指定顺序运行

所以我必须按顺序给他们打电话。但我的问题是,如果上一个cronjob完成了,我如何触发下一个cronjob

我想写一个脚本来触发每个cronjob,但要触发下一个,我需要知道我的上一个cronjob是否已经结束


我更喜欢PHP

创建一个shell脚本或执行以下操作:

0 */5 * * * php /var/www/html/project1/cron.php && php /var/www/html/project2/cron.php && php /var/www/html/project3/cron.php
如果您想让php脚本为您工作并记录其输出,请执行以下操作

ini_set('memory_limit','8196M');
$date=date('mdY');
if(!file_exists($date."_ENK.zip"))
{
echo "sh get_files.sh ".$date."_ENK.zip\n";
echo "DOWNLOADING FILE\n";
echo popen("sh get_files.sh ".$date."_ENK.zip >> get_log",'r');
echo "MOVING FILE\n";
echo exec("mv ".$date.".csv ../../data/data.csv");
echo "IMPORTING INTO DATABASE\n";
echo exec("php /var/www/html/project1/index.php Engines dothings");
echo "DUMPING INTO TEMP FOLDER\n";
echo exec("mysqldump -u user db tab > /tmp/tab.sql");
echo "UPDATING\n";
echo exec("mysql -u far_user -ppass -h 10.0.0.1 db_away < /tmp/tab.sql");
echo "CLEANING UP";
echo exec("rm -f /tmp/tab.sql");
echo exec("rm -f ../../data/data.csv");
echo exec("rm -f somefile.zip");
}
ini_集('memory_limit','8196M');
$date=日期('mdY');
如果(!file_存在($date.\u ENK.zip)))
{
echo“sh get_files.sh”。$date.\u ENK.zip\n”;
echo“正在下载文件\n”;
echo popen(“sh get_files.sh”。$date.\u ENK.zip>>get_log”,'r');
回显“移动文件\n”;
echo exec(“mv.$date..csv./。/data/data.csv”);
echo“导入到数据库\n”;
echo exec(“php/var/www/html/project1/index.php引擎dothings”);
回显“转储到临时文件夹\n”;
echo exec(“mysqldump-u user db tab>/tmp/tab.sql”);
回显“更新\n”;
echo exec(“mysql-u far_user-ppass-h10.0.0.1db_-away
听起来您只需要一个包含7个脚本的cronjob。如果它们必须按照预定义的顺序运行,将它们合并到一个脚本中不是更聪明吗?如果您没有很多cron作业,最快的方法(也是最有黑客味的)是使用分号将它们列在corntab中,如:“***cron1_command;cron2_command>/ptah/to/log.txt”我想写一个脚本来触发其他脚本。但是我不能捆绑它们,因为其中一个4个cronjobs是WordPress中的插件,我的另外3个cronjobs是由我的主机提供的。我猜主机的3个cronjobs是从不同的用户名运行的?