2017-01-16 6 views
2

を実行します。TYPO3 ExtBase私はID 5と私のスケジューラでタスクを持っているUIDによってスケジューラタスクを取得し、それを

... 

/** 
* @var \TYPO3\CMS\Scheduler\Scheduler 
* @inject 
*/ 
protected $scheduler; 

... 

public function createAction($filepath, Strategy $strategy) 
{ 
    ... 
    $taskObject = $this->scheduler->fetchTaskRecord(5)["serialized_task_object"]; 

    $task = unserialize($taskObject); 

    if ($this->scheduler->isValidTaskObject($task)) { 

     // The task is valid, return it 
     $this->scheduler->executeTask($task); 
    } 

    ... 
} 

しかし、私は次のエラーを取得する: Fatal error: Call to a member function saveTask() on null in /var/www/typo3/typo3_src-6.2.25/typo3/sysext/scheduler/Classes/Task/AbstractTask.php on line 469

これは右isValidTaskObject確認後var_dumpとI出力$task場合、私は、その後、var_dump($taskObject);

string(588) "O:32:"TYPO3\CMS\Extbase\Scheduler\Task":9:{s:20:"*commandIdentifier";s:39:"importr:import:initializeservicemanager";s:12:"*arguments";a:1:{s:12:"extensionKey";s:0:"";}s:11:"*defaults";a:2:{s:12:"extensionKey";N;s:4:"mail";N;}s:10:"*taskUid";i:5;s:11:"*disabled";b:1;s:12:"*execution";O:29:"TYPO3\CMS\Scheduler\Execution":6:{s:8:"*start";i:1475152860;s:6:"*end";i:1475152860;s:11:"*interval";i:0;s:11:"*multiple";i:0;s:10:"*cronCmd";s:0:"";s:23:"*isNewSingleExecution";b:0;}s:16:"*executionTime";i:1475152860;s:14:"*description";s:0:"";s:12:"*taskGroup";i:0;}"

を実行する場合、私が得るものです空のページを取得するだけです。

より正確には、私は拡張子Importr

答えて

3

の一部であるファイルImportr/Classes/Controller/ImportrController.phpからcreateAction関数の内部で働いている私はあなただけではなく、ANのタスクオブジェクトを取得するには、fetchTaskRecord()の代わりにfetchTask()を使用する必要がありますねアレイ。 私はこれを試しただけでエラーはありません。

$scheduler = $this->objectManager->get(\TYPO3\CMS\Scheduler\Scheduler::class); 
$schedulerTask = $scheduler->fetchTask(1); 
$schedulerTask->execute(); 

あまりが、少なくともビット情報/ドキュメント: https://docs.typo3.org/typo3cms/extensions/scheduler/latest/DevelopersGuide/SchedulerApi/Index.html

HTH merzilla

+1

ありがとう!なぜ 'fetchTask()'がAPIに文書化されていないのだろうか、私は何時間も安全でしょう – Black

関連する問題