【问题标题】:How can i write a cron job using a symfony task我如何使用 symfony 任务编写 cron 作业
【发布时间】:2011-10-05 09:31:20
【问题描述】:

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

【问题讨论】:

    标签: php symfony1 cron crontab


    【解决方案1】:

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

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

    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 # 删除 任何重复的工作
    • echo "您正在添加的 cron 作业" >>oldcrontab # 添加新作业
    • crontab oldcrontab # 重新加载 crontab

    只需使用相同的策略,但从 PHP 使用上述函数。应该可以的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-11
      • 1970-01-01
      • 2013-03-06
      • 1970-01-01
      • 1970-01-01
      • 2018-01-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多