簡體   English   中英

TYPO3 ExtBase-通過UID獲取調度程序任務並執行

[英]TYPO3 ExtBase - Get scheduler task by UID and execute it

我的調度程序中有一個ID為5的任務:

計划任務

現在,我嘗試獲取任務,然后執行它。

...

/**
 * @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

這是我執行var_dump($taskObject);

字符串(588)“ O:32:” TYPO3 \\ CMS \\ Extbase \\ Scheduler \\ Task“:9:{s:20:” * commandIdentifier“; s:39:” importr:import:initializeservicemanager“; s:12:” *參數 “;一個:1:{S:12:” extensionKey “; S:0:” “;} S:11:” *默認 “;一個:2:{S:12:” extensionKey“; N; S :4: “郵件”; N;} S:10: “* taskUid”; I:5; S:11: “*禁用”; b:1; S:12: “*執行”,O:29:” TYPO3 \\ CMS \\調度\\執行 “:6:{S:8:” *開始 “; I:1475152860; S:6:” *結束 “; I:1475152860; S:11:” *間隔“; I:0 ; S:11: “*多個”; I:0; S:10: “* cronCmd”; S:0: “”; S:23: “* isNewSingleExecution”; b:0;} S:16:“* executionTime “; I:1475152860; S:14:” *描述 “; S:0:” “; S:12:” *任務組 “; I:0;}”

如果在isValidTaskObject檢查之后立即輸出帶有var_dump $task ,那么我只會得到一個空頁面。

更確切地說,我正在文件Importr/Classes/Controller/ImportrController.phpcreateAction函數內部進行工作,該文件是擴展程序Importr一部分

我猜您應該只使用fetchTask()而不是fetchTaskRecord()來獲取任務對象而不是數組。 我只是試過了,沒有任何錯誤。

$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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM