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

任何人都可以通过示例解释该过程,或者推荐一些好的资源来入门吗?

有帮助吗?

解决方案

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

Google搜索<!>;如何设置cron作业<!>在顶部显示了这个链接:

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

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

P.S。

作为执行命令,您应该输入类似的内容:

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

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

which php

祝cron工作好运;)

其他提示

由于Zend Framework是一些松散耦合组件的集合,您可以在每个PHP脚本(包括CLI脚本)中使用您喜欢的组件。但是,您必须确保PHP可以找到相关的Zend Framework类,因此您必须将Zend Framework库路径添加到include_path。然后,您可以使用Zend_Loader_Autoloader(ZF <!> gt; = 1.8)或Zend_Loader(ZF <!> lt; 1.8)设置自动加载,以使生活更轻松。现在,您应该可以访问可以随意使用的所有Zend Framework组件。

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

如果您的问题是针对在CLI脚本中使用MVC组件的,那么我必须承认我没有任何相关经验。我认为必须做出不可忽视的努力来实施适当的请求,响应,分心和路由类。

修改

请参阅这篇文章了解更多信息。

也许现实生活中的例子会有所帮助。几年前,我使用 Zend Framework 开发了一个事件日历项目。在此日历中,用户可以创建事件并将 1 个或多个日期附加到该事件。当然,我在数据库中将其实现为多对一连接,但这意味着为了附加日期,事件必须首先存在。不过我想允许用户添加日期 尽管 他们正在创造事件,而不是 他们创建了一个事件。换句话说,我希望用户同时编辑事件的所有方面,并且仅在单击“保存”时才提交。

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

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

您可能使用 cron 作业执行的其他操作:

  • 向新用户发送一批电子邮件。(每5分钟一次?)
  • 更新用户统计数据(每小时?)
  • 当服务器没有受到流量冲击时执行资源密集型操作(每天晚上午夜,还是每周周日晚上一次?)
  • 响应用户请求时未发生的任何其他事件(Jeff 称之为“带外”)。

您可能还会参与如何使用ZF存储cron作业

这是使用Zend Framework实现cron系统的好方法的链接:

Zend Framework应用程序中的Cron任务

Personnaly,我已经对它进行了调整,因此参数可能是动态的,但基数是相同的: - )

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top