如何每 12 小时通过 cron 运行 zend 框架操作(在索引控制器内)?
案子:
我有由 zf 工具创建的基本(无模块)zend 项目(1.11)。
在主 IndexController 内部存在 cronAction() - url http://mydomain/index/cron。
需要通过 cron 每 12 小时运行一次 cronAction()。
谢谢
如何每 12 小时通过 cron 运行 zend 框架操作(在索引控制器内)?
案子:
我有由 zf 工具创建的基本(无模块)zend 项目(1.11)。
在主 IndexController 内部存在 cronAction() - url http://mydomain/index/cron。
需要通过 cron 每 12 小时运行一次 cronAction()。
谢谢
找到 crontab 文件并添加这一行:
0 0,12 * * * curl --silent --compressed http://mydomain/index/cron
您也可以使用其他工具(例如 lynx 或 wget)来执行此操作,而不必使用 curl - 以上只是一个示例。
我知道我有点晚了,但我想留下另一个解决方案,也许它可以帮助其他人,如果你在模型中有业务规则,你可以在 cron 中运行文件
通过在公用文件夹中创建一个包含以下内容的文件。例如:cron.php
<?php
// Define path to application directory
defined('APPLICATION_PATH')
|| define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
// Define application environment
defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'development'));
// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
realpath(APPLICATION_PATH . '/../library'),
get_include_path(),
)));
/** Zend_Application */
require_once 'Zend/Application.php';
// Create application, bootstrap, and run
$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap();
$model = new Application_Model_Name();
$model->runTask();
然后添加一个 cron 选项卡条目
0 0,12 * * * php /path/to/your/project/cron.php
它应该比第一个答案更好,因为您将使用 PHP CLI 运行,那么您将没有 php 脚本的执行时间限制,如果您的脚本需要超过一分钟并且您不需要网络连接来运行该 cron 作业
在 Zend Framework 2 中,您可以使用控制台路由运行 cron 作业。看看这里发布的例子:http: //collabedit.com/58v4v