Example #1
0
 /**
  * 软链接
  */
 private function _link($version = null)
 {
     // 创建链接指向
     $folder = new Folder();
     $sTime = Command::getMs();
     $ret = $folder->setConfig($this->conf)->link($version);
     // 记录执行时间
     $duration = Command::getMs() - $sTime;
     Record::saveRecord($folder, $this->task->id, Record::ACTION_LINK, $duration);
     if (!$ret) {
         throw new \Exception('创建链接出错');
     }
     return true;
 }
Example #2
0
 /**
  * 执行远程服务器任务集合
  * 对于目标机器更多的时候是一台机器完成一组命令,而不是每条命令逐台机器执行
  *
  * @param $version
  * @throws \Exception
  */
 private function _updateRemoteServers($version)
 {
     $cmd = [];
     // pre-release task
     if ($preRelease = WalleTask::getRemoteTaskCommand($this->conf->pre_release, $version)) {
         $cmd[] = $preRelease;
     }
     // link
     if ($linkCmd = $this->walleFolder->getLinkCommand($version)) {
         $cmd[] = $linkCmd;
     }
     // post-release task
     if ($postRelease = WalleTask::getRemoteTaskCommand($this->conf->post_release, $version)) {
         $cmd[] = $postRelease;
     }
     $sTime = Command::getMs();
     // run the task package
     $ret = $this->walleTask->runRemoteTaskCommandPackage($cmd);
     // 记录执行时间
     $duration = Command::getMs() - $sTime;
     Record::saveRecord($this->walleTask, $this->task->id, Record::ACTION_UPDATE_REMOTE, $duration);
     if (!$ret) {
         throw new \Exception('全量更新服务器出错');
     }
     return true;
 }
Example #3
0
 /**
  * 软链接
  */
 private function _link($version = null)
 {
     // 创建链接指向
     $remote = new RemoteCmd();
     $sTime = Command::getMs();
     $ret = $remote->setConfig($this->_config)->link($version);
     // 记录执行日志
     $duration = Command::getMs() - $sTime;
     $ret = Record::saveRecord($remote, $this->_task->id, Record::ACTION_LINK, $duration);
     if (!$ret) {
         throw new \Exception($version ? '回滚失败' : '创建链接指向出错');
     }
     return true;
 }