【问题标题】:PHP scheduled task without Cron没有 Cron 的 PHP 计划任务
【发布时间】:2020-07-29 19:41:58
【问题描述】:

我以有限的权限共享主机来进行高级设置。但是我需要在没有 Cron 的情况下一次完成一些工作。那么如何在预定时间运行 PHP 脚本呢?假设我需要在 2 小时后从服务器发送电子邮件通知。我的第一个想法是循环直到时间结束,但它不会不必要地消耗资源吗?其次只是将服务器系统时间与所需时间进行比较,但没有什么可以运行脚本。 知道如何解决这个问题吗?

【问题讨论】:

  • 还有web cron服务。
  • 另外,您的托管服务提供商因为不提供 cron 服务而非常便宜(因为质量低下)。这不再是一种奢侈。我不知道一个不提供 cron 的共享托管服务。只要朝任何方向扔一块石头,你就会找到一个。

标签: php server scheduled-tasks


【解决方案1】:

看看PHP的sleep函数(https://www.php.net/manual/en/function.sleep.php)

您可能有一个循环,将当前时间与您想要的时间进行比较。如果当前时间仍然不是您想要的时间,您可以睡 x 秒。

*注意事项:此方法可能无法让您的脚本准确像 cron 作业一样在您希望的时间运行,但会准确到您进入睡眠的时间量调用中间检查。另外,我不相信 sleep 函数会在您想要的时间返回(例如,如果您想等待 5 分钟,那么 sleep(5*60) 可能不会在 5 分钟后返回。如果可能的话,肯定会推荐 Cron 作业。 *

【讨论】:

  • OP 也可以使用 time_sleep_until,但我怀疑 set_time_limit(0) 的数量在共享主机上不会超过几秒钟。
  • @LawrenceCherone time_sleep_until,它可以工作,谢谢。睡眠功能只是冻结服务器上运行的进程?我问是因为我想知道睡眠功能是否会降低服务器负载而不是空白循环,可能是:D
猜你喜欢
  • 2014-05-26
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
  • 2020-12-02
  • 2012-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多