Zum Inhalt springen

eigener scheduler task

Erstellt am 10. März 2017 · 6 Antworten · letzte Antwort am 13. März 2017

Tags: Frage

mic187 ·

versuche gerade einen eigenen task zu erstellen.
leider macht er die select abfrage nicht.

class PayTask extends \TYPO3\CMS\Scheduler\Task\AbstractTask implements \TYPO3\CMS\Scheduler\ProgressProviderInterface {
      public function execute() {
		
		  
		 
        $starttime = strtotime(date('Y-m-d H:i:s'));
		$endtime = strtotime(date('Y-m-d H:i:s',strtotime('-50 minutes')));
		
		$where = 'capture_date BETWEEN '.$endtime.' AND '.$starttime.' AND cancellation = 0';
		$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('uid,capture_date,caputre_unique', 'fe_users', $where,'','','');
	;		
			
while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
}

leider kommt bei dieser ausgabe kein ergebniss. wenn ich das direkt in phpmyadmin mache bekomme ich eine ausgabe.
was läuft hier falsch ?

gruß michi

getit ·

Die exectute()-Methode muss immer ein true oder false zurückliefern. Je nachdem ob der Task erfolgreich war oder nicht.

mic187 ·

hallo getit,
das habe ich schon aber halt nicht mitkopiert. am ende steht schon
return true;

Das hauptproblem ist ja das er das select nicht auflöst. die variable $res ist immer leer.

mic187 ·

hallo Julian,
ja das habe ich schonmal gemacht.

debug_lastBuiltQuery hab ich schon getestet aber das ist leer.

$res ist leer

Julian.​Hofmann ·

o.O Das kann eigentlich nicht sein. Am Ende des Aufrufs von exec_SELECTquery() landet man bei der \mysqli::query() von PHP. Diese Methode hat als Rückgabe:

@return mysqli_result|boolean For successful SELECT, SHOW, DESCRIBE or EXPLAIN queries <b>mysqli_query</b> will return a <b>mysqli_result</b> object. For other successful queries <b>mysqli_query</b> will return true and false on failure.

D.h. es gibt keinen Fall, wo $res leer ("", NULL, 0) sein kann. Es müsste ein mysqli_result-Objekt oder false zurückkommen.

mic187 · · Beste Antwort

Hallo Julian,
habe mit das exec_SELECTquery() mal debugt aber halt ohne exec_ hab den fehler dann gefunden.
Jetzt läuft es und es kommt auch wasn an.

Danke