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

Cri*_*anu 1 cron typo3

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

谢谢.

小智 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'
);
Run Code Online (Sandbox Code Playgroud)

您需要tasks/class.TX_YOUREXTENSKEY.php在扩展目录中创建该文件

class TX_YOUREXTENSKEY extends tx_scheduler_Task {
    public function execute() {}
    ...
}
Run Code Online (Sandbox Code Playgroud)

如果任务被执行,则调用execute函数.如果一切都很好,它应该返回true,如果你有一些错误,它应该是假的.

最后你的类需要加载这可以使用ext_autoload.php(在您的扩展根目录中,请参阅TYPO3 Wiki:Autoload以获取更多详细信息)

<?php
  return array(
    'tx_sfpinger_pinger' => t3lib_extMgm::extPath('sfpinger', 'tasks/class.tx_sfpinger_pinger.php')
  );
?>
Run Code Online (Sandbox Code Playgroud)

最后,您需要添加到将Scheduler定期运行ext的系统cron命令(您将在Scheduler的Setup check部分找到它),并将您创建的任务添加到其任务列表中.

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

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