如何使用symfony任务编写cron作业

时间:2011-10-05 09:31:20

标签: php symfony1 cron crontab

我正在为我的symfony应用程序创建自动化过程,该应用程序在symfony中作为插件编写。在这个插件中,我需要添加一个cron job.now我手动添加它。我可以从symfony打开cron选项卡并将一些东西写入cron选项卡吗???如果是这样的话 我只是运行一个任务并从cli添加cron作业。 任何建议来完成这项工作。

1 个答案:

答案 0 :(得分:0)

我假设您知道如何从命令行执行此操作。在Symfony任务中,您可以使用PHP标准中的passthru()函数调用系统命令。

PHP中的以下两个函数可能有所帮助。

function mysystem($cmd)
{
  passthru($cmd, $val);
  if ($val != 0)
  {
    mydie("Command $cmd exited with nonzero exit status $val\n");
  }
}

// PHP's die() exits with a happy status, which is useless in scripts
function mydie($s)
{
  fwrite(STDERR, $s);
  exit(1);
}

从脚本中你可以做类似以下的事情。

  • crontab -l | grep -v“你要添加的工作”> oldcrontab #remove 任何重复的工作
  • echo“你正在添加的cron作业”>> oldcrontab #add the new job
  • crontab oldcrontab #reload the crontab

使用相同的策略,但是使用上面的函数从PHP。这应该有用。