【问题标题】:Getting PHP to run once on a specific date [closed]让 PHP 在特定日期运行一次 [关闭]
【发布时间】:2015-02-18 07:20:31
【问题描述】:

我对此进行了调查,并且发现了有关 Cron 作业的信息 - 但问题是它只需要运行一次。

背景: 我的用户可以创建过期的东西——他们可以选择过期的时间。

我的一个解决方案:也许我不必在那天将其过期 - 每当有人请求该东西时,我可以检查它是否已经过期,如果已经过期,那么我可以更改该东西相应地。

为什么它不起作用:我还想在那个东西到期时发送一封电子邮件。

感谢您的帮助!

【问题讨论】:

  • 根据请求检查事物是否已过期是可行的方法。在电子邮件部分:您可以设置每日 cron 作业,该作业将检查过去 24 小时内是否有任何内容过期,如果过期,则发送电子邮件,否则不会。就这么简单。

标签: php date time server


【解决方案1】:

您可以将时间戳与用户项目一起保存,例如您称之为 expire

然后您可以运行一个 cron 作业来删除所有已超过过期时间的项目。

if($item.expire < time())
{
   // Item has expired, remove it
}

【讨论】:

    【解决方案2】:

    您可以设置一个运行脚本的 cron 作业,该脚本将日期与到期日期进行比较。如果它等于过期日期,发送邮件,否则什么都不做。

    【讨论】:

      【解决方案3】:

      如果您使用 MYSQL,则可以使用事件。我已经成功地在过期会话中使用它们。

      【讨论】:

        【解决方案4】:

        您可以选择一种“运行器”来检查在特定时间运行的可用作业并运行它们。 然后你可以创建一个触发运行器的 cronjob。

        【讨论】:

          【解决方案5】:

          Cron 作业是您正在寻找的,您只需要找到一种只运行一次任务的方法。

          https://stackoverflow.com/a/5473841/2055152

          尝试在 2011 年 3 月 30 日午夜执行命令:

          0 0 30 3 ? 2011 /command

          这个答案提供了一个简单的解决方案。如果您希望用户使用 PHP 创建自己的事件,只需将他们想要的日期转换为 cron 格式。请注意您允许他们启动的内容!

          【讨论】:

            猜你喜欢
            • 2012-03-30
            • 2023-01-20
            • 2022-01-01
            • 1970-01-01
            • 2014-01-30
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-06-18
            相关资源
            最近更新 更多