【问题标题】:How to implement cron in PHP?如何在 PHP 中实现 cron?
【发布时间】:2011-03-30 20:46:13
【问题描述】:

我使用网络托管 startlogic.com。我向一名员工询问了有关 cron 的问题。他们告诉我,他们在控制面板中只有一个名为“安排作业”的功能,我可以在其中手动放置作业。 但我需要从我的 Web 应用程序中执行此操作。例如,当我按下按钮时,我会在 1 个月后收到电子邮件通知。 如何使用 PHP 实现?

【问题讨论】:

    标签: php cron


    【解决方案1】:
    1. 制作一个名为 cron.php 的 PHP 脚本(如果可能,在您的 Web 根目录之外)。

    2. 将此设置为在“计划作业”下定期运行

    3. 每次 cron.php 运行时,它都会检查一个作业数据库以查看是否有任何作业到期。

    4. 如果有任何到期,它们就会运行。

    5. 一旦运行,它们就会被标记。

    6. 要将新作业添加到列表中,只需在数据库中添加一个包含作业详细信息和截止日期的新行。

    【讨论】:

    • +1 不管自动安排“物理”cron 作业的可行性如何,OP 都应该采用该方案。您不希望将数千个作业安排为一次性执行,而这些作业可能会因服务器重新安装/移动/崩溃而被清除。
    • 耶稣。这是一个显示如何在数据库中创建作业的链接:w3schools.com/php
    • +1 虽然我会在 4 到 5 之间添加一个步骤,以在它们实际运行之前将正在运行的作业标记为“正在运行”(如果服务器在某些作业运行时崩溃可能会很方便)。
    • @Skilldrick Man,关于在数据库中创建 cron 作业的确切教程在哪里?您提供了 php 教程的链接。
    • 我认为你需要学习 PHP。向数据库中添加记录并不难。
    【解决方案2】:

    你可以有一个 PHP 脚本,每小时运行一次。在此脚本中,您可以实现自己的类似 cron 的功能,例如读取 cronjobs 数据库并执行它们。

    【讨论】:

    • 自己解决,或者问其他问题。 SO 不是让其他人编写您的代码的地方。
    【解决方案3】:

    如果您不关心确切的时间,您可以检查数据库的每个页面加载(或每隔一个小时)是否有需要执行的作业。

    这样 cron 将不会在一个月后执行,而是在一个月后加载下一页,这很可能很快就会发生。

    【讨论】:

    • OP 可以访问 cron 功能(计划作业) - 他只是不知道如何使用它来发送电子邮件通知。
    猜你喜欢
    • 2012-11-25
    • 2023-04-05
    • 2019-08-08
    • 2014-10-14
    • 1970-01-01
    • 2015-12-18
    • 1970-01-01
    • 2019-02-09
    • 2011-11-05
    相关资源
    最近更新 更多