在不同的时间运行任务

时间:2018-05-05 04:24:46

标签: php cron

我有一个+20个要运行的任务列表。我的问题是我不能同时运行它们,而且我不知道每天要运行多少任务(它可以改变)。

所以这就是我正在做的事情:

  1. 我每天都有一个cron
  2. 此cron运行SQL命令以获取要处理的任务列表
  3. 如果我的任务列表小于我的处理器数量,我使用exec($ command)运行PHP的所有任务
  4. 如果没有(这是我的问题),我想将我的列表拆分成块,并运行第一个子集,并在2小时后计划其他子集
  5. 更新

    感谢@jasonK的贡献,我有一个问题的起点:Using at

    所以我创建了一个php文件test.php:

    <?php
        $f = fopen("hello.txt", "a");
        fwrite($f, date("Y-m-d :H:i:s")."\n");
        fclose($f);
    ?>
    

    当我在shell php test.php | at now + 2 minutes中运行时,这会向我显示此消息job 4 at Sat May 5 07:24:00 2018 但我看到该文件已更新,无需等待2分钟!换句话说,即使提示的消息是好的,脚本也会立即执行。

    任何想法?

1 个答案:

答案 0 :(得分:0)

我通过这样做解决了这个问题:

allfiles <- list.files(pattern = '.xls')
to_remove <- allfiles[!(allfiles %in% my900names)]
file.remove(to_remove)

这不适用于Mac OS,但在Ubuntu上就像一个魅力。

非常感谢@JasonK指出我的解决方案。