如何在cron作业中运行TYPO3扩展?

时间:2012-11-22 10:24:09

标签: cron typo3

有谁能告诉我如何在TYPO3中设置cronjob?我创建了一个TYPO3扩展,我希望每周运行一次。我已经安装了调度程序扩展程序,但它只允许执行某些扩展程序(例如 tt_news )。

谢谢。

1 个答案:

答案 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