可怜的人crontab Zend Framework实现

时间:2011-07-18 09:42:48

标签: php zend-framework cron crontab

是否有任何现成的“穷人的crontab”实现(每分钟左右调用一次PHP脚本)可以轻松集成到Zend Framework中?最好使用视图脚本仪表板,用于作业管理,由控制器填充。

* 修改

我找到了Zend_Scheduler,这似乎与我追求的有些相似。缺少的是一种保持自我维持的机制(不依赖于外部的crontabbed wget或类似的东西),而是在实际页面加载时执行。

在Zend框架中是否有合适的位置我可以从$scheduler->run()搭载? Bootstrap::__destruct()或类似的?为了完成渲染视图,并在任何计划任务发生之前推送到客户端? (因此,客户不会受到可能安排的任何长期运行的影响。

(如果没有访问者,自然会有一些自然的准确性,但我的假设是,如果没有人来查看结果,就不必执行任何计划任务)

*的 EDIT2:

Zend_Scheduler太旧了,它与较新的Zend Framework版本不兼容,因此无法按预期工作。是否还有其他自持库可用于此目的?

3 个答案:

答案 0 :(得分:0)

我猜你的意思是Drupal's poormanscron模块。 Zend Framework没有提供类似的东西,实际上Drupal也没有,但它们有由Drupal社区创建和支持的模块。

遗憾的是,Zend Framework缺少社区驱动的模块。你必须在野外的某个地方找到你的模块。我怀疑你会发现像poormanscron这样的东西,但也许你可以采用那个模块,并在ZF进行一些小改动。

答案 1 :(得分:0)

您可以编写一个实现dispatchLoopShutdown()方法的Zend_Controller_Plugin。我想这比在Bootstrap类中实现$scheduler->run()更好。有关详细信息,请参阅http://framework.zend.com/manual/en/zend.controller.plugins.html

答案 2 :(得分:0)

我要做的是一个桌面应用程序,每x秒调用一次URL(...说使用wget)。 Piggibacking到常规请求是坏主意IMO。

但事实上,你可以把它放在Boostrap-> run()之后。 run方法(完成后)将响应返回给客户端,因此你可以随意搞乱你需要的东西;)我会使用一些函数来获取url(file_get_contents()或更好的东西 - 这不需要等待实际内容 - 卷曲......也许)。并将实际代码存储在该URL上。它比piggibacking实际代码要求更好......