Пример #1
0
 protected function _checkCanLock()
 {
     if ($this->_lock && !$this->_lock->launch(get_called_class() . '-' . $this->_config->get('thread'))) {
         return false;
     }
     return true;
 }
Пример #2
0
 /**
  * Launch background task
  * @param string $name
  */
 protected function _launchTask($name)
 {
     $thread = Request::getInstance()->getPart(3);
     $timeLimit = intval(Request::getInstance()->getPart(2));
     if ($thread) {
         $threadName = $name . $thread;
     } else {
         $threadName = $name;
     }
     $appCfg = $this->_configs->get($name);
     $appCfg['thread'] = $thread;
     $adapter = $appCfg['adapter'];
     if ($timeLimit) {
         $this->_cronConfig['time_limit'] = $timeLimit;
         $this->_cronConfig['intercept_limit'] = $timeLimit;
     }
     $lock = new Cron_Lock($this->_cronConfig);
     if ($this->_log) {
         $lock->setLogsAdapter($this->_log);
     }
     if (!$lock->launch($threadName)) {
         exit;
     }
     $appCfg['lock'] = $lock;
     $bgStorage = new Bgtask_Storage_Orm(Model::factory('Bgtask'), Model::factory('Bgtask_Signal'));
     $tManager = Bgtask_Manager::getInstance();
     $tManager->setStorage($bgStorage);
     if ($this->_log) {
         $tManager->setLogger($this->_log);
     }
     $tManager->launch(Bgtask_Manager::LAUNCHER_SILENT, $adapter, $appCfg);
     $lock->finish();
 }