/**
  * static task getter
  * 
  * @param  string $_type
  * @param  array $_requestOptions
  * @param  array $_taskOptions
  * @return Tinebase_Scheduler_Task
  */
 public static function getPreparedTask($_type, array $_requestOptions, array $_taskOptions = array())
 {
     $request = new Zend_Controller_Request_Simple();
     $request->setControllerName($_requestOptions['controller']);
     $request->setActionName($_requestOptions['action']);
     if (isset($_requestOptions['params']) || array_key_exists('params', $_requestOptions)) {
         foreach ($_requestOptions['params'] as $key => $value) {
             $request->setParam($key, $value);
         }
     }
     $task = new Tinebase_Scheduler_Task($_taskOptions);
     $task->setMonths("Jan-Dec");
     $task->setWeekdays("Sun-Sat");
     $task->setDays("1-31");
     $task->setRequest($request);
     switch ($_type) {
         case self::TASK_TYPE_MINUTELY:
             $task->setHours("0-23");
             $task->setMinutes("0/1");
             break;
         case self::TASK_TYPE_HOURLY:
             $task->setHours("0-23");
             $task->setMinutes("0");
             break;
         case self::TASK_TYPE_DAILY:
             $task->setHours("0");
             $task->setMinutes("0");
             break;
     }
     return $task;
 }
 /**
  * create scheduler task
  * 
  * @return Tinebase_Scheduler_Task
  */
 protected function _createTask()
 {
     $request = new Zend_Controller_Request_Http();
     $request->setControllerName('Tinebase_Alarm');
     $request->setActionName('sendPendingAlarms');
     $request->setParam('eventName', 'Tinebase_Event_Async_Minutely');
     $task = new Tinebase_Scheduler_Task();
     $task->setMonths("Jan-Dec");
     $task->setWeekdays("Sun-Sat");
     $task->setDays("1-31");
     $task->setHours("0-23");
     $task->setMinutes("0/1");
     $task->setRequest($request);
     return $task;
 }
Beispiel #3
0
 /**
  * update to 3.8
  * - schedulers
  */
 public function update_7()
 {
     $declaration = new Setup_Backend_Schema_Table_Xml('
      <table>
         <name>scheduler</name>
         <version>1</version>
         <declaration>
             <field>
                 <name>id</name>
                 <type>integer</type>
                 <length>11</length>
                 <autoincrement>true</autoincrement>
                 <notnull>true</notnull>
             </field>
             <field>
                 <name>name</name>
                 <type>text</type>
                 <length>255</length>
                 <notnull>true</notnull>
             </field>
             <field>
                 <name>data</name>
                 <type>text</type>
                 <notnull>true</notnull>
             </field>
             <index>
                 <name>id</name>
                 <primary>true</primary>
                 <field>
                     <name>id</name>
                 </field>
             </index>
         </declaration>
     </table>');
     try {
         $this->_backend->createTable($declaration);
         Tinebase_Application::getInstance()->addApplicationTable(Tinebase_Application::getInstance()->getApplicationByName('Tinebase'), 'scheduler', 1);
     } catch (Zend_Db_Statement_Exception $zdse) {
         // do nothing
     }
     $request = new Zend_Controller_Request_Simple();
     $request->setControllerName('Tinebase_Alarm');
     $request->setActionName('sendPendingAlarms');
     $request->setParam('eventName', 'Tinebase_Event_Async_Minutely');
     $task = new Tinebase_Scheduler_Task();
     $task->setMonths("Jan-Dec");
     $task->setWeekdays("Sun-Sat");
     $task->setDays("1-31");
     $task->setHours("0-23");
     $task->setMinutes("0/1");
     $task->setRequest($request);
     $scheduler = Tinebase_Core::getScheduler();
     $scheduler->addTask('Tinebase_Alarm', $task);
     $scheduler->saveTask();
     $this->setApplicationVersion('Tinebase', '3.8');
 }