如何在PHP和Ubuntu中设置一个接一个地运行的多个cron作业

时间:2017-12-07 17:26:41

标签: php mysql ubuntu cron

我对cron作业有基本的了解,但我现在需要更复杂的东西。我需要将大约100个表上传到MySql,每个表有大约500 MB的数据,然后在每个表上运行一些php cron作业,一个表接着另一个。我在下面详细解释:

  1. 通过php中的加载数据本地infile上传表格。表格将从我的目录上传,该目录中包含CSV文件。如何创建循环以上传所有这些文件?
  2. 运行script1.php,然后运行script2.php,然后运行script3.php这三个作为cron作业
  3. 重复步骤1
  4. 请告诉我怎么做?我在Ubuntu 16.04上。

1 个答案:

答案 0 :(得分:0)

创建一个脚本(例如bash)来完成你想要做的所有工作,包括上传表数据,运行php脚本,并根据需要重复。

示例bash文件(/home/spanky/stuffToDo.sh):

#!/bin/bash
# Simple bash script that does some work

php -f dowork1.php
php -f dowork2.php
php -f dowork3.php

设置你的cron作业以根据需要调用该脚本,如下所示:

10 * * * * /home/spanky/stuffToDo.sh

有关从bash脚本调用PHP函数的更多详细信息,请参阅this question的答案,特别是提到使用CLI PHP进行命令行使用PHP的答案。

有很多可靠的例子证明使用bash来处理这类事情。这是一个很好的起点:https://linuxconfig.org/bash-scripting-tutorial

注意:如果每个步骤绝对必须是一个cron作业,那么你必须相应地安排它们,理解它们可能会重叠,如果一个人迟到(或永远不会结束)。您可以进入更复杂的场景,其中一个依赖于完成前一个作业的cronjob将在继续之前检查状态标志或文件,但这很快就会变得混乱。