【问题标题】:Running a scheduled task in a Wordpress plug-in [closed]在 Wordpress 插件中运行计划任务 [关闭]
【发布时间】:2010-09-08 10:00:02
【问题描述】:

我正在尝试编写一个 Wordpress 插件,它可以在一天中的某个时间自动发布博客文章。例如,阅读大量 RSS 提要并发布所有新条目的每日摘要。

有一些插件可以做与我想要的类似的事情,但其中许多插件依赖于 cron 作业来进行自动调度。如果必须,我会这样做,但我希望有更好的方法。让典型的 Wordpress 用户添加 cron 作业并不十分友好。

有没有一种很好的方法来安排从 Wordpress 插件运行的任务?它不必在完全正确的时间运行。

【问题讨论】:

    标签: php wordpress


    【解决方案1】:

    pseudo-cron 很好,但它有两个问题是

    1,它需要有人“点击”博客才能执行。低流量网站可能会有很长的执行时间,所以不要具体说明两个时间。

    2,处理发生在页面加载之前。因此,如果执行时间发生了,并且您有很多“cron”条目,您可能会给访问者带来低于标准的体验,从而让他们感到不安。

    只要我的 2 美分 :-)

    【讨论】:

    • 我认为你对 #2 的看法是错误的。 WordPress 会对其自身生成一个异步 curl() 调用来触发该作业,因此访问者不会有明显的延迟。如果你想解决 #1,你可以设置一个 cron 作业到 `wget example.com/wp-cron.php'。
    【解决方案2】:
    【解决方案3】:

    我认为最好的方法是使用伪 cron。我已经看过好几次了,虽然时间不准确,但它应该做你需要做的事情。由于在 Wordpress 中 index.php 始终是根据 .htaccess 中的设置命中的第一件事,因此创建一个名为 pseudo-cron.php 的文件,将其转储到根目录中,然后从索引中要求它一次。每当有人访问该站点时,它就会运行,您可以使用它来启动一个脚本,并根据一天中的时间以及上一个摘要运行的时间检查是否需要生成另一个每日摘要。

    【讨论】:

      【解决方案4】:

      vBulletin 使用一种 Pseudo-Cron 系统,基本上检查每个页面访问的时间表,然后触发任何到期的进程。

      自从我使用 Wordpress 以来已经有一段时间了,但我认为如果它在每个页面视图上运行,这样的东西应该可以工作。

      【讨论】:

      • 如果你让它依赖于每一个尝试的垃圾评论,你可以达到毫秒级的精度。 :-)
      猜你喜欢
      • 2019-11-22
      • 1970-01-01
      • 1970-01-01
      • 2010-10-07
      • 2012-09-16
      • 2023-03-23
      相关资源
      最近更新 更多