1

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

谢谢你。

4

1 回答 1

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() {}
    ...
}

如果任务被执行,则调用执行函数。如果一切正常,它应该返回 true;如果出现错误,它应该返回 false。

最后需要加载您的类,这可以使用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 命令(您可以在调度程序Setup check部分找到它),并将您创建的任务添加到其任务列表中。

您可以检查一个演示任务,它只是一个示例,您可以从中复制代码并粘贴到您的扩展中。

还要检查在您的 TYPO3 实现的文件夹中随调度程序任务提供的文档:/typo3/sysext/scheduler/doc/manual.sxw

于 2012-11-22T11:06:52.790 回答