如何在不同的时间运行3个PHP脚本,每30分钟作为cron作业?

时间:2011-04-19 20:04:41

标签: php cron

好吧,

我有3个不同的php脚本,实际上它是由cron作业运行的,但我的cron文件中有3个条目,我想只有一个。我会试着解释一下:

1 - 文件在我的数据库中运行查询并将一些数据保存在数据库中。 (需要几秒钟) 2 - 运行脚本2,这将在我的Web服务器中创建2个新的配置文件。 (执行需要1分钟以上) 3 - 第三个文件打开ssh连接并在服务器中执行一些命令,它将生成的文件放到服务器中并重新加载服务器。

实际情况:

我每次执行3个脚本,所有3个脚本需要每30分钟运行一次,然后我运行第一个脚本,5分钟后运行第二个脚本,最后15分钟后我运行脚本2运行脚本3。

它完美无缺,但我想在一个PHP脚本中做所有事情,这是可能的,只能在我的cron中调用一次吗?

1 个答案:

答案 0 :(得分:2)

如果脚本都依赖于之前完成其工作的脚本,那么您希望以固定的时间间隔仅运行第一个脚本,然后让该脚本按顺序执行其他两个脚本。

stage1.php:

<?php

... do important stuff...

include('stage2.php');
include('stage3.php');

这样,第二个和第三个脚本将在第一个脚本完成任何必须执行的任务之后才开始运行,并且如果第一个序列中的某些内容失败,您将有机会中止整个脚本。

任何其他方式都会非常挑战。请考虑以下顺序:

  • 脚本#1运行备份
  • 脚本#2将备份文件传输到另一台服务器
  • 脚本#3从备份中清理

无论出于何种原因脚本#1运行时间长,脚本#2启动并在备份完成之前开始传输备份文件。文件传输需要很长时间,因为网络很忙,所以现在你正在运行备份,它正被转移到另一台服务器, AND 清理脚本现在已经消失并删除了.tar.gz脚本#1正在制作。