/** * tears down the fixture */ public function tearDown() { // remove all tasks $scheduler = Tinebase_Core::getScheduler(); $scheduler->getBackend()->saveQueue(); // init default tasks Tinebase_Scheduler_Task::addAlarmTask($scheduler); Tinebase_Scheduler_Task::addCacheCleanupTask($scheduler); Tinebase_Scheduler_Task::addCredentialCacheCleanupTask($scheduler); Tinebase_Scheduler_Task::addTempFileCleanupTask($scheduler); Tinebase_Scheduler_Task::addDeletedFileCleanupTask($scheduler); }
/** * init scheduler tasks */ protected function _initializeSchedulerTasks() { $scheduler = Tinebase_Core::getScheduler(); Calendar_Scheduler_Task::addUpdateConstraintsExdatesTask($scheduler); }
/** * update to 5.7 * - add deleted file cleanup task to scheduler */ public function update_6() { $scheduler = Tinebase_Core::getScheduler(); Tinebase_Scheduler_Task::addDeletedFileCleanupTask($scheduler); $this->setApplicationVersion('Tinebase', '5.7'); }
/** * init scheduler tasks */ protected function _initializeSchedulerTasks() { $scheduler = Tinebase_Core::getScheduler(); Tinebase_Scheduler_Task::addAlarmTask($scheduler); Tinebase_Scheduler_Task::addCacheCleanupTask($scheduler); Tinebase_Scheduler_Task::addCredentialCacheCleanupTask($scheduler); Tinebase_Scheduler_Task::addTempFileCleanupTask($scheduler); Tinebase_Scheduler_Task::addDeletedFileCleanupTask($scheduler); }
/** * send alarm via scheduler */ protected function _sendAlarm() { $scheduler = Tinebase_Core::getScheduler(); $scheduler->addTask('Tinebase_Alarm', $this->_createTask()); try { $scheduler->run(); } catch (Tinebase_Exception $te) { // do nothing } }
/** * uninit scheduler tasks */ protected function _uninitializeSchedulerTasks() { $scheduler = Tinebase_Core::getScheduler(); Sales_Scheduler_Task::removeUpdateProductLifespanTask($scheduler); }
/** * update to 9.7 * * add rrule_constraints background job */ public function update_6() { $scheduler = Tinebase_Core::getScheduler(); Calendar_Scheduler_Task::addUpdateConstraintsExdatesTask($scheduler); $this->setApplicationVersion('Calendar', '9.7'); }
/** * update to 8.22 * * @see 0010766: set product lifespan */ public function update_21() { if (!$this->_backend->columnExists('lifespan_end', 'sales_products')) { $declarations = array(new Setup_Backend_Schema_Field_Xml('<field> <name>lifespan_start</name> <type>datetime</type> </field>'), new Setup_Backend_Schema_Field_Xml('<field> <name>lifespan_end</name> <type>datetime</type> </field>'), new Setup_Backend_Schema_Field_Xml('<field> <name>is_active</name> <type>boolean</type> <default>false</default> </field>')); foreach ($declarations as $declaration) { try { $this->_backend->addCol('sales_products', $declaration); } catch (Zend_Db_Statement_Exception $zdse) { Tinebase_Exception::log($zdse); } } $this->setTableVersion('sales_products', 5); } // add hourly async job $scheduler = Tinebase_Core::getScheduler(); Sales_Scheduler_Task::addUpdateProductLifespanTask($scheduler); $this->setApplicationVersion('Sales', '8.22'); }
/** * update to 3.25 * - remove action queue task -> it's now a seperate cli method for a seperate cronjob */ public function update_24() { $scheduler = Tinebase_Core::getScheduler(); $scheduler->removeTask('Tinebase_ActionQueue'); $scheduler->saveTask(); $this->setApplicationVersion('Tinebase', '3.25'); }
/** * update to 6.4 * - add credential cache cleanup task to scheduler */ public function update_3() { Tinebase_Scheduler_Task::addSessionsCleanupTask(Tinebase_Core::getScheduler()); $this->setApplicationVersion('Tinebase', '6.4'); }
/** * adds import table */ public function update_5() { $tableDefinition = ' <table> <name>import</name> <version>1</version> <declaration> <field> <name>id</name> <type>text</type> <length>80</length> <notnull>true</notnull> </field> <field> <name>timestamp</name> <type>datetime</type> </field> <field> <name>user_id</name> <type>text</type> <length>80</length> <notnull>true</notnull> </field> <field> <name>model</name> <type>text</type> <length>80</length> <notnull>true</notnull> </field> <field> <name>application_id</name> <type>text</type> <length>80</length> <notnull>true</notnull> </field> <field> <name>synctoken</name> <type>text</type> <length>80</length> </field> <field> <name>container_id</name> <length>80</length> <type>text</type> </field> <field> <name>sourcetype</name> <type>text</type> <notnull>true</notnull> </field> <field> <name>interval</name> <type>text</type> </field> <field> <name>source</name> <type>text</type> </field> <field> <name>options</name> <type>text</type> </field> <index> <name>id</name> <primary>true</primary> <field> <name>id</name> </field> </index> <field> <name>created_by</name> <type>text</type> <length>40</length> </field> <field> <name>creation_time</name> <type>datetime</type> </field> <field> <name>last_modified_by</name> <type>text</type> <length>40</length> </field> <field> <name>last_modified_time</name> <type>datetime</type> </field> <field> <name>is_deleted</name> <type>boolean</type> <notnull>true</notnull> <default>false</default> </field> <field> <name>deleted_by</name> <type>text</type> <length>40</length> </field> <field> <name>deleted_time</name> <type>datetime</type> </field> <field> <name>seq</name> <type>integer</type> <notnull>true</notnull> <default>0</default> </field> <index> <name>import::application_id--applications::id</name> <field> <name>application_id</name> </field> <foreign>true</foreign> <reference> <table>applications</table> <field>id</field> </reference> </index> <index> <name>import::user_id--accounts::id</name> <field> <name>user_id</name> </field> <foreign>true</foreign> <reference> <table>accounts</table> <field>id</field> </reference> </index> </declaration> </table>'; $table = Setup_Backend_Schema_Table_Factory::factory('String', $tableDefinition); $this->_backend->createTable($table); $scheduler = Tinebase_Core::getScheduler(); Tinebase_Scheduler_Task::addImportTask($scheduler); $this->setApplicationVersion('Tinebase', '8.6'); }
/** * update to 7.6 * * @see 0008318: add clear accesslog to scheduler */ public function update_5() { $scheduler = Tinebase_Core::getScheduler(); Tinebase_Scheduler_Task::addAccessLogCleanupTask($scheduler); $this->setApplicationVersion('Tinebase', '7.6'); }
/** * test create event with alarm * * @todo add testUpdateEventWithAlarm */ public function testCreateEventWithAlarm() { $eventData = $this->_getEventWithAlarm(TRUE)->toArray(); $persistentEventData = $this->_uit->saveEvent($eventData); $loadedEventData = $this->_uit->getEvent($persistentEventData['id']); //print_r($loadedEventData); // check if alarms are created / returned $this->assertGreaterThan(0, count($loadedEventData['alarms'])); $this->assertEquals('Calendar_Model_Event', $loadedEventData['alarms'][0]['model']); $this->assertEquals(Tinebase_Model_Alarm::STATUS_PENDING, $loadedEventData['alarms'][0]['sent_status']); $this->assertTrue(isset($loadedEventData['alarms'][0]['minutes_before']) || array_key_exists('minutes_before', $loadedEventData['alarms'][0]), 'minutes_before is missing'); $scheduler = Tinebase_Core::getScheduler(); $scheduler->addTask('Tinebase_Alarm', $this->createTask()); $scheduler->run(); // check alarm status $loadedEventData = $this->_uit->getEvent($persistentEventData['id']); $this->assertEquals(Tinebase_Model_Alarm::STATUS_SUCCESS, $loadedEventData['alarms'][0]['sent_status']); }
/** * update to 4.8 * - add temp file cleanup task to scheduler */ public function update_7() { $scheduler = Tinebase_Core::getScheduler(); Tinebase_Scheduler_Task::addTempFileCleanupTask($scheduler); $this->setApplicationVersion('Tinebase', '4.8'); }
/** * testCleanupCacheTriggeredByScheduler (this is only for code coverage) * * @see Tinebase_ControllerTest::testCleanupCache() for the real cache cleanup test */ public function testCleanupCacheTriggeredByScheduler() { $scheduler = Tinebase_Core::getScheduler(); Tinebase_Scheduler_Task::addCacheCleanupTask($scheduler); $scheduler->run(); }
/** * trigger async events (for example via cronjob) * * @param Zend_Console_Getopt $_opts * @return boolean success */ public function triggerAsyncEvents($_opts) { if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) { Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' Triggering async events from CLI.'); } $freeLock = $this->_aquireMultiServerLock(__CLASS__ . '::' . __FUNCTION__); if (!$freeLock) { if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) { Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' Job already running.'); } return false; } $userController = Tinebase_User::getInstance(); // deactivate user plugins (like postfix/dovecot email backends) for async job user $userController->unregisterAllPlugins(); try { $cronuser = $userController->getFullUserByLoginName($_opts->username); } catch (Tinebase_Exception_NotFound $tenf) { $cronuser = $this->_getCronuserFromConfigOrCreateOnTheFly(); } Tinebase_Core::set(Tinebase_Core::USER, $cronuser); $scheduler = Tinebase_Core::getScheduler(); $responses = $scheduler->run(); if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) { Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' ' . print_r(array_keys($responses), TRUE)); } $responseString = $responses ? implode(',', array_keys($responses)) : 'NULL'; echo "Tine 2.0 scheduler run (" . $responseString . ") complete.\n"; return true; }
/** * trigger async events (for example via cronjob) * * @param Zend_Console_Getopt $_opts * @return boolean success */ public function triggerAsyncEvents($_opts) { if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) { Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' Triggering async events from CLI.'); } try { $cronuser = Tinebase_User::getInstance()->getFullUserByLoginName($_opts->username); } catch (Tinebase_Exception_NotFound $tenf) { $cronuser = $this->_getCronuserFromConfigOrCreateOnTheFly(); } Tinebase_Core::set(Tinebase_Core::USER, $cronuser); $scheduler = Tinebase_Core::getScheduler(); $responses = $scheduler->run(); if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) { Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' ' . print_r($responses, TRUE)); } $responseString = $responses ? implode(',', array_keys($responses)) : 'NULL'; echo "\nTine 2.0 scheduler run (" . $responseString . ') complete.'; return TRUE; }