【问题标题】:Cron to run a PHP Script every 5 seconds between time slotsCron 在时隙之间每 5 秒运行一次 PHP 脚本
【发布时间】:2021-05-13 13:05:24
【问题描述】:

如何在 13:00:00 到 14:00:0016:00 的时间段之间每 5 秒自动运行 PHP 脚本:每天00到17:00:00

PHP 脚本:

<?php
$datetime = date("l jS \of F Y h:i:s A"); 
$apiToken = "1825671537:AAEYexjklpoiyUdEeG8Ml";
$telegram_chatid = '-10012345607';
$message = urlencode($datetime);
                
$telegram_call = file_get_contents("https://api.telegram.org/bot$apiToken/sendMessage?chat_id=$telegram_chatid&parse_mode=markdown&text=$message");
exit();
?>

【问题讨论】:

  • AFAIK cron 每分钟最多只能运行一次。看起来你只是在用毫无意义的时间数据向电报发送垃圾邮件,目的是什么?
  • @ADyson 这只是一个例子。
  • 这能回答你的问题吗? run php script every 5 seconds

标签: php api cron cron-task py-telegram-bot-api


【解决方案1】:

使用 for 循环运行该进程 12 次,两次调用之间间隔 5 秒 sleep。使用 cron 每分钟运行一次。

* 13  * * *  for i in {1..12}; do (php telegram.php &); sleep 5; done;
* 16  * * *  for i in {1..12}; do (php telegram.php &); sleep 5; done;

程序使用&amp; 分离,因此睡眠直接发生,而不是在脚本完成后发生,确保它每 5 秒运行一次。

【讨论】:

    【解决方案2】:

    嗯,你不能用 cron 作业来做,但你可以用 cron 作业作为启动器。

    这可能是解决此问题的一种方法。你可以在每天 13:00 点运行一个 cron 作业。

    另一方面,您的脚本应该有一个休眠 5 秒并再次通过循环的循环。一旦你到达 17:00 点,它将停止循环并退出。

    并且应该在循环中进行另一次检查,检查您是否在给定时间之间,例如13:00-14:00 或 16:00-17:00,如果是,它将运行您的脚本并休眠 5 秒,如果不是,它将运行循环

    另一种方法是每小时运行一次 cron 作业。 在你的脚本中,你必须检查它是你想要开始做某事的时间。如果是这样,你就像上面的循环一样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-20
      • 2014-09-25
      • 2021-08-03
      • 1970-01-01
      • 2020-06-07
      • 2013-02-23
      • 1970-01-01
      相关资源
      最近更新 更多