【问题标题】:Are There Any Cron Jobs Alternative?是否有任何 Cron 工作替代方案?
【发布时间】:2011-06-07 10:00:53
【问题描述】:

我的服务器上的 Cron 作业已关闭,服务器管理员不接受打开它。因为,cron 作业会减慢服务器等。所以,我需要一个替代方案。

我必须每 2 分钟运行一次 php 文件 (cron.php)。

那么,我该怎么做呢?

【问题讨论】:

  • cron.php 是从 Web 服务器提供的,还是只是一个本地脚本?
  • 简短的回答是获得更好的主机...
  • @Jesse,它由网络服务器提供,可通过浏览器访问
  • 订阅(免费)网站监控服务,并安排您的 [url]/cron.php。您可以让您的网页返回一些有意义的内容,并配置监控服务以通知您该响应。

标签: php cron jobs


【解决方案1】:

取决于您对盒子的访问权限。

PHP 本身不能很好地独立运行。您可以编写一个脚本,尝试不断增加其执行时间,定期休眠并检查新作业。但这是次优的,因为您必须通过浏览器访问它一次,并且脚本必须确保它只运行一次。

通过 shell 访问,您可以在 shell 上运行 php 脚本,这将防止它被公共调用并且必须通过网络浏览器运行它。

通过 shell 访问,您还可以运行一个为您提供 (cron) 服务的程序。无论是 Java、Python 还是其他程序。

Cron 作业不应该总是降低服务器的速度。这取决于正在运行的作业。如果是您的工作如此昂贵,那么您的管理员可能无法解决已关闭的 cron 工作并再次降低服务器速度,并且可能会采取进一步的措施来阻止您解决问题。

【讨论】:

    【解决方案2】:

    看来这可能是您的解决方案 - Free & Easy Cronjob Execution.

    据我了解,它是一项网络服务,可通过您设置的时间表唤起您的网站 URL。

    在这里找到了关于这件事的提及 - https://stackoverflow.com/a/6853113/123618

    【讨论】:

      【解决方案3】:

      尽管问题是不久前发布的,但我也遇到了同样的问题,但找到了解决方案(基于Kissaki's answer,谢谢!)并认为我会将其发布在这里,供仍在寻找可能解决方案的任何人使用。

      先决条件:

      • SSH 访问
      • Python

      代码(python):

      from subprocess import call
      import time
      while True:
          call(["php","cron.php"])
          time.sleep(120)
      

      【讨论】:

      • 这很整洁!感谢分享!
      • 所以我需要通过 ssh 调用 python 脚本一次?
      • 正确。如果你支持“屏幕”,你也可以在后台进行。
      • 你是怎么杀死它的?
      【解决方案4】:

      只是对答案的补充。罕见情况。

      如果您的应用程序有频繁的数据库操作,那么您可以维护一个单独的表,其中一列将作为何时运行脚本的衡量标准。示例如下

      表 CRON_RUN

      last_run
      ----------
      12-09-2018 11:55:12 (dd-mm-yyyy H:M:S)
      

      现在在您的应用程序中,每次发生频繁的数据库操作时都可以执行检查,并检查 last_run 日期和当前日期是否有 x 差异。 X 是您要运行脚本的时间差。在你的情况下 2 分钟。此外,如果差异大于或等于 2 分钟,则更新语句将运行以使用当前日期时间更新 last_run 列,下一条语句将是您的 cron.php 脚本。

      【讨论】:

        【解决方案5】:

        Linux 有多种 Cron 替代方案。 喜欢,

        1. Anacron - Anacron 是一个与 cron 类似的周期性命令调度程序。唯一的区别是它不需要您的计算机一直在运行。

        2. fcron - Fcron 是 cron 和 anacron 中最好的。它不需要您的计算机 24×7 全天候运行,并且可以每小时或每分钟处理任务。

        3. Hcron

        4. 求职者 等等

        未来阅读请参阅this article

        【讨论】:

          猜你喜欢
          • 2017-03-06
          • 1970-01-01
          • 2022-01-12
          • 2012-05-03
          • 2020-04-14
          • 2020-07-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多