TYPO3 调度程序任务 - 奇怪的行为

TYPO3 scheduler task - strange behavior

我使用的是 TYPO3 6.2,我使用 Extbase 和 Fluid 创建了一个自定义扩展。 我做了一个自定义任务,以便在 TYPO3 调度程序模块中每小时执行一次。下面是它的样子:

<?php

use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Backend\Utility\BackendUtility;

class ImportCommandController extends \TYPO3\CMS\Extbase\Mvc\Controller\CommandController {

    public function importCommand() {

    // some code

    }

}

?>

它似乎工作正常,但行为很奇怪:

[scheduler]: Removing logged execution, assuming that the process is dead. Execution of 'TYPO3\CMS\Extbase\Scheduler\Task' (UID: 5) was started at 2018-06-10 16:40:00

然后,我必须自己在调度程序中停止任务。根据 documentation,class 中的方法不需要 return true 或 false。那么,为什么任务在调度程序启动时不成功?

调度任务启动方式有一些区别:

  • 由 cron 安排:
    它是 CLI PHP,它可能是另一个版本,至少是不同于 Web 服务器启动的 PHP 的另一种配置(例如,没有时间限制!),在 TYPO3 中,它使用特殊的 cli-user.

  • 开始于 BE:
    这是在网络服务器上下文中启动的:(通常)您有时间限制,当前 TYPO3-BE 用户执行任务。

我做了一个这样的调度任务

<?php
namespace Vendor\Extensionname\Task;

/***************************************************************
 *  Copyright notice
 *
 *  All rights reserved
 *
 *  ...
 *
 *  This copyright notice MUST APPEAR in all copies of the script!
 ***************************************************************/


/**
 * My scheduler task
 *
 */
class MyTask extends \TYPO3\CMS\Scheduler\Task\AbstractTask  {


    /**
     * Execute, called by scheduler.
     *
     * @return bool TRUE if task run was successful
     */
    public function execute() {

        \TYPO3\CMS\Core\Utility\GeneralUtility::devLog(
            '[Vendor\Extensionname\Task\MyTask]: Task run sucessfully', 'scheduler', 2);
        }
        return true;
    }


}