【问题标题】:Run php script with cron mac - every 10 seconds使用 cron mac 运行 php 脚本 - 每 10 秒
【发布时间】:2016-10-14 15:47:12
【问题描述】:

我正在尝试使用 cron 在 mac 中运行 php 脚本。我希望这个 php 脚本每 10 秒运行一次。我在网上阅读了几个资源,据我了解,如果我使用 launchd 会更好。无论如何,我尝试让它与 cron 一起工作,然后如果它工作正常,我可能会尝试使用 launchd。

这就是我所做的,但它每分钟运行一次:

*/1 * * * * /usr/bin/curl --silent --compressed http://localhost:8888/atms_final/data/demos/editing/loop_tasks.php 

如何将其更改为每 10 秒运行一次

【问题讨论】:

  • Cron 只允许至少一分钟。你可以做的是编写一个带有无限循环的 shell 脚本来运行你的任务,然后休眠 10 秒。这样,您的任务将或多或少每 10 秒运行一次,具体取决于任务本身需要多长时间。

标签: macos cron


【解决方案1】:

cron 对于 10 秒的重复率来说有点太粗粒度了。

考虑制作一个这样的小脚本并将其保存为curler

#!/bin/bash
while :; do
   echo curling...
   /usr/bin/curl --silent --compressed http://localhost:8888/atms_final/data/demos/editing/loop_tasks.php
   sleep 10
done

然后,在终端中,您可以使其可执行(只需执行一次):

chmod +x curler

然后你可以在终端中运行它:

./curler

或者您可以从cron 运行curler 一次

【讨论】:

    【解决方案2】:

    你可以这样做 -

    */1 * * * * curl --silent --compressed http://localhost:8888
    
    */1 * * * * sleep 10; curl --silent --compressed http://localhost:8888
    
    */1 * * * * sleep 20; curl --silent --compressed http://localhost:8888
    
    */1 * * * * sleep 30; curl --silent --compressed http://localhost:8888
    
    */1 * * * * sleep 40; curl --silent --compressed http://localhost:8888
    
    */1 * * * * sleep 50; curl --silent --compressed http://localhost:8888
    

    解释-

    所以从技术上讲,每分钟有 6 个 cron 作业都在运行,但每个作业都有一个尾随睡眠时间,这使得运行时间相差 10 秒。

    【讨论】:

      猜你喜欢
      • 2014-09-25
      • 1970-01-01
      • 2011-01-04
      • 2022-01-11
      • 1970-01-01
      • 1970-01-01
      • 2013-04-02
      • 1970-01-01
      • 2010-12-16
      相关资源
      最近更新 更多