2009-05-04 68 views
2

我完全不熟悉cron作业的主题,所以我不知道从哪里开始了解它们;什么时候,为什么,如何将它们与我的Zend Framework应用程序,或一般的PHP一起使用。开始使用cron作业和PHP(Zend Framework)

任何人都可以用一个例子来解释过程,或者推荐一些好的资源来开始吗?

回答

3

Cron作业是一种在Linux操作系统中自动执行任务的机制。和Zend Framework相差不多。该框架可以帮助您在PHP中开发高级cron任务。但是,你将不得不在shell中设置你的cron作业。

谷歌搜索“如何设置计划任务”透露顶部此链接:

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

我敢肯定,这篇文章会帮助你。

P.S.

至于执行的命令,你应该把这样的:

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

其中第一个路径是完整路径到你的PHP CLI可执行文件,可能您的计算机上有所不同。 )

2

由于Zend框架是某种松耦合的组件的集合,你可以用你喜欢的组件;

which php

用cron作业好运:您可以通过发出以下命令确认每个PHP脚本都包含CLI脚本。但是,您必须确保PHP能够找到相关的Zend Framework类,因此您必须将Zend Framework库路径添加到您的include_path。然后,您可以使用Zend_Loader_Autoloader(ZF> = 1.8)或Zend_Loader(ZF < 1.8)设置自动加载,以使生活更轻松。现在,您应该可以访问您可以随意使用的所有Zend Framework组件。

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

如果您的问题针对的是CLI脚本中使用MVC组件,我必须承认我没有任何这方面的经验。我认为必须做出不可忽视的努力才能实现适当的请求,响应,distpachter和route类。

编辑:

请参阅this article以获取更多信息。

2

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

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

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

  • 发送一批邮件的新用户:

    ,你可以使用cron作业的其他事情。 (每5分钟?)

  • 更新用户统计(每隔一小时?)
  • 当服务器交通不是抨击执行资源密集型操作(每天的午夜,或每周一次在周日晚上?)
  • 任何其他事件不会响应用户请求(杰夫称为“带外”)。
1

下面就做你一个cron系统与Zend框架的implentation的一个很好的方式链接:

Cron tasks in Zend Framework apps

Personnaly,我已经适应它,参数可以是动态的,但基础是一样的:-)