通过命令行调用PHP脚本中的多个包含

时间:2014-07-09 04:16:29

标签: php command-line scheduled-tasks

我正在创建一些计划任务,对我的数据库执行系统维护(即非活动用户清理,数据存档等),并生成/通过电子邮件发送自动数据报告。

目前我已将其设置为每个任务都是自己的文件,并且有一个调用相应任务的主文件。

例如:

run_daily.php
<?php
define('INCLUDE_CHECK',true);
require $_SERVER['DOCUMENT_ROOT'].'/db/connect.db.php';
require $_SERVER['DOCUMENT_ROOT'].'/includes/definitions.inc.php';
$get_dailyTasks = mysql_query("SELECT task_name FROM task_scheduler WHERE task_type='task' AND task_occurs='daily' AND task_active=1");
while(($dailyTasks = mysql_fetch_assoc($get_dailyTasks)))
{
  include $schedule.'tasks/'$dailyTasks['task_name'].$tsk;
};
$get_dailyReports = mysql_query("SELECT task_name FROM task_scheduler WHERE task_type='report' AND task_occurs='daily' AND task_active=1");
while(($dailyReports = mysql_fetch_assoc($get_dailyReports)))
{
  include $schedule.'reports/'.$dailyReports['task_name'].$rbf;
};
?>

user_cleanup.php
<?php
$disable_inactive = "UPDATE users SET enabled='no' WHERE (created < (CURDATE() - INTERVAL 3 MONTH) AND last_active IS NULL AND enabled='yes') OR (last_active < (CURDATE() - INTERVAL 3 MONTH) AND enabled='yes')";
mysql_query($disable_inactive);
?>

我正在尝试以这种方式进行设置,因为我计划通过命令行运行主文件并将其安排为服务器上的任务调度程序作业。我将有权根据需要修改文件,但是一旦设置完成,我将无法轻松更改计划运行的内容。我的想法是安排一个主任务,这将允许我根据需要添加/删除子任务。

我遇到的问题是,当我通过命令行测试所有内容时,子任务似乎永远不会将控制权返回给主任务。在第一个子任务运行后(无论我如何命令),运行后没有其他子任务。

0 个答案:

没有答案