有谁能告诉我如何在TYPO3中设置cronjob?我创建了一个TYPO3扩展,我希望每周运行一次。我已经安装了调度程序扩展程序,但它只允许执行某些扩展程序(例如 tt_news )。
谢谢。
答案 0 :(得分:8)
您的扩展程序必须支持Scheduler
- 系统扩展(可能您需要先安装它)。因此,您必须在计划程序服务中注册您的扩展程序。
通过您的ext_localconf.php
if (!defined ('TYPO3_MODE')) die ('Access denied.');
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks']['TX_YOUR_EXTENSIONKEY'] = array(
'extension' => $_EXTKEY,
'title' => 'Some meningful Title',
'description' => 'Some Discription of the Task'
);
您需要在扩展程序目录中创建文件tasks/class.TX_YOUREXTENSKEY.php
class TX_YOUREXTENSKEY extends tx_scheduler_Task {
public function execute() {}
...
}
如果执行任务,则调用execute函数。如果一切顺利,它应该返回true,如果你有一些错误,它应该是假的。
最后您的课程需要加载,可以使用ext_autoload.php
完成(在您的扩展根目录中,有关详情,请参阅TYPO3 Wiki: Autoload)
<?php
return array(
'tx_sfpinger_pinger' => t3lib_extMgm::extPath('sfpinger', 'tasks/class.tx_sfpinger_pinger.php')
);
?>
最后,您需要定期添加将运行Scheduler
ext的系统cron命令(您可以在Scheduler的Setup check
部分找到它),并将创建的任务添加到其任务中列表。
您可以查看demo task这个样本,您可以从中复制代码并粘贴到您的扩展程序中。
还要检查TYPO3实施文件夹中的调度程序任务随附的文档:/typo3/sysext/scheduler/doc/manual.sxw