Hi
Ich habe ein Problem mit der cron-Erweiterung. Nach erfolgreichem ausführen des Jobs, wird kein nextrun mehr eingetragen, obwohl ich "Nur einmal ausführen" abgeschalten habe.
Bei folgendem Code im CronController.php Zeile 90 steht:
PHP-Code:
if ($cronJob['completed']) {
if ($cronJob['runonce'])
$dataset = array(
'lastrun' => $currtime,
'nextrun' => 0,
'scheduled' => 0,
'enabled' => '0'
);
else
$dataset = array(
'lastrun' => $currtime,
'nextrun' => $this->schedule($q),
'scheduled' => $currtime
);
$this->Database->prepare("update `tl_cron` %s where id=?")
->set($dataset)
->$execute($q->id);
} // if
'nextrun' => $this->schedule($q),: Sollte eigentlich eingetragen werden.
Ich habe es an einem richtigen Cron angeschlossen. Mein Code:
PHP-Code:
class Statistics extends Frontend
{
/**
* Initialize
*/
public function __construct()
{
$this->import('Database');
$this->import('Environment');
}
/**
* Create daily member information
*/
public function createDailyMemberInformation()
{
// Check wether today is the last day of the year
(date('d-m') == '31-12') ? $blnLastDayOfTheYear = true : $blnLastDayOfTheYear = false;
// Check wehter today is the last day of the month
(date('d') == date('t')) ? $blnLastDayOfTheMonth = true : $blnLastDayOfTheMonth = false;
$objMembers = $this->Database->prepare("SELECT COUNT(*) AS total FROM tl_member WHERE login=1")->execute();
// Data
$arrData['tstamp'] = time();
$arrData['members'] = $objMembers->total;
$arrData['lastDayOfTheMonth'] = $blnLastDayOfTheMonth;
$arrData['lastDayOfTheYear'] = $blnLastDayOfTheYear;
$insertId = $this->Database->prepare("INSERT INTO tl_statistics %s")->set($arrData)->execute()->insertId;
// Log
$this->log('A new daily member information (ID ' . $insertId . ') was created', 'ModuleStatistic createDailyMemberInformation()', TL_CRON);
}
$objStatistics = new Statistics();
$objStatistics->createDailyMemberInformation();
Hat jemand ne Ahnung was ich falsch gemacht habe oder warum kein nextrun eingetragen wird?
Lesezeichen