【问题标题】:Getting started with cron jobs and PHP (Zend Framework)开始使用 cron 作业和 PHP(Zend 框架)
【发布时间】:2010-10-23 13:54:23
【问题描述】:

我对 cron 作业这个主题完全陌生,所以我不知道从哪里开始学习它们;何时、为什么或如何将它们与我的 Zend Framework 应用程序或一般的 PHP 一起使用。

谁能解释这个过程,用一个例子,或者推荐一些好的资源来开始?

【问题讨论】:

    标签: php zend-framework cron queue scheduled-tasks


    【解决方案1】:

    Cron 作业是一种在 Linux 操作系统中自动执行任务的机制。 Zend 框架几乎没有什么可做的。不过,该框架可以帮助您在 php 中开发高级 cron 任务。但是你必须在 shell 中设置你的 cron 作业。

    谷歌搜索“如何设置 cron 作业”在顶部显示此链接:

    http://www.adminschoice.com/docs/crontab.htm

    我相信这篇文章会对你有所帮助。

    附言

    作为要执行的命令,您应该输入如下内容:

    /usr/local/bin/php -f <path_to_your_php_script>

    第一个路径是您的 php cli 可执行文件的完整路径,在您的机器上可能会有所不同。您可以通过发出以下命令来确保:

    which php

    祝 cron 工作好运 ;)

    【讨论】:

      【解决方案2】:

      由于 Zend 框架是松散耦合组件的集合,您可以在每个 PHP 脚本(包括 CLI 脚本)中使用您喜欢的组件。不过,您必须确保 PHP 可以找到相关的 Zend Framework 类,因此您必须将 Zend Framework 库路径添加到您的include_path。然后您可以使用Zend_Loader_Autoloader (ZF >= 1.8) 或Zend_Loader (ZF

      像所有其他脚本或程序一样,此 PHP 脚本可以自然地用于 cron 作业。还有一点需要注意的是,您必须确保运行您的 cron 作业的用户对 Zend Framework 库路径具有读取权限,否则 PHP 无法读取 Zend Framework 文件。

      如果您的问题是针对在 CLI 脚本中使用 MVC 组件,我必须承认我在这方面没有任何经验。我认为必须付出不可忽视的努力来实现适当的请求类、响应类、分发包类和路由类。

      编辑:

      请查看this article了解更多信息。

      【讨论】:

        【解决方案3】:

        你也可能对how to store cron jobs with ZF感兴趣

        【讨论】:

        • 是的,我实际上对此很感兴趣。谢谢。
        【解决方案4】:

        也许一个真实的例子会有所帮助。几年前,我使用 Zend 框架参与了一个事件日历项目。在此日历中,用户可以创建一个事件并将 1 个或多个日期附加到该事件。自然地,我在我的数据库中将其实现为多对一连接,但这意味着为了附加日期,事件必须首先存在。但是,我希望允许用户在他们创建事件时添加日期,而不是在他们创建事件之后。换句话说,我希望用户同时编辑事件的所有方面,并且只有在他们点击“保存”时才提交。

        我通过在用户开始创建事件记录时将新的空事件记录插入数据库来解决问题。当用户单击“保存”时,该空记录被填充并保存,或者当用户单击“取消”时被删除。问题发生在用户没有点击“取消”就离开,数据库中留下了空的事件记录。最终,数据库会被这些无意义的空事件填满,事情可能会变得很糟糕。

        我编写了一个名为“maintenance()”的函数,除其他外,它删除了所有超过 24 小时的未保存记录。我设置了一个每晚运行的 cron 作业,并执行了一个运行 maintenance() 的命令行 php 脚本。

        您可能会将 cron 作业用于的其他事情:

        • 向新用户发送一批电子邮件。 (每 5 分钟一次?)
        • 更新用户统计信息(每小时?)
        • 在服务器流量不拥挤的情况下执行资源密集型操作(每天晚上午夜,还是每周周日晚上一次?)
        • 响应用户请求时未发生的任何其他事件(Jeff 称之为“带外”)。

        【讨论】:

          【解决方案5】:

          这是一个使用 Zend 框架实现 cron 系统的好方法的链接:

          Cron tasks in Zend Framework apps

          个人而言,我已经对其进行了调整,因此参数可以是动态的,但基础是相同的 :-)

          【讨论】:

            猜你喜欢
            • 2023-04-06
            • 1970-01-01
            • 1970-01-01
            • 2012-06-03
            • 2013-01-08
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-10-05
            相关资源
            最近更新 更多