Browse Source

Merge branch 'master' of biuro.biall-net.pl:plabudda/se

# By Mariusz Muszyński
# Via Mariusz Muszyński
* 'master' of biuro.biall-net.pl:plabudda/se:
  Kolejna drobna poprawka do WMS - prawidłowe uruchamianie konwersji plików tif w tle
  Drobnra poprawka do implementacji WMS
a.binder 9 năm trước cách đây
mục cha
commit
a2f567346a
1 tập tin đã thay đổi với 9 bổ sung6 xóa
  1. 9 6
      SE/se-lib/Route/UrlAction/WmsGenerate.php

+ 9 - 6
SE/se-lib/Route/UrlAction/WmsGenerate.php

@@ -31,13 +31,15 @@ class Route_UrlAction_WmsGenerate extends RouteBase {
 
 	private function defaultAction_WMS_LAYERS($ID_WMS_LAYERS) {
 		try {
-			$LAYER_TYPE=DB::getPDO()->fetchall("select LAYER_TYPE from WMS_LAYERS where ID='".$ID_WMS_LAYERS."'");
-			if (!$LAYER_TYPE) throw new Exception('Błąd - nie ma takiej warstwy!');
+			$layer=DB::getPDO()->fetchall("select LAYER_TYPE,FILE_STATUS from WMS_LAYERS where ID='".$ID_WMS_LAYERS."'");
+			if (!$layer) throw new Exception('Błąd - nie ma takiej warstwy!');
+
+			if ($layer[0]['FILE_STATUS']=="IN_PROGRESS") throw new Exception('Błąd - plik w trakcie przetwarzania!');
 
 			$destFolderPath = $this->getDirectory($ID_WMS_LAYERS);
 			$files=array();
 			
-			if ($LAYER_TYPE[0]['LAYER_TYPE']=='GeoTIFF') {
+			if ($layer[0]['LAYER_TYPE']=='GeoTIFF') {
 
 				foreach (glob($destFolderPath."/*.tif",GLOB_BRACE) as $node) {
 					if (is_file($node)) $files[]=basename($node);
@@ -50,7 +52,7 @@ class Route_UrlAction_WmsGenerate extends RouteBase {
 				if (!$validateGeoTif) throw new Exception('Znaleziony plik '.$files[0].' nie jest poprawnym plikiem tif!');
 				if (!$validateGeoTif->coordinateSystem->wkt) throw new Exception('Znaleziony plik '.$files[0].' nie jest poprawnym plikiem GeoTif!');
 
-			} elseif ($LAYER_TYPE[0]['LAYER_TYPE']=='QGIS') {
+			} elseif ($layer[0]['LAYER_TYPE']=='QGIS') {
 
 				foreach (glob($destFolderPath."/*.qgs",GLOB_BRACE) as $node) {
 					if (is_file($node)) $files[]=basename($node);
@@ -87,7 +89,7 @@ class Route_UrlAction_WmsGenerate extends RouteBase {
 			$sqlObj->FILE_STATUS='TO_GENERATE';
 			$sqlObj->FILE_STATUS_INFO='Plik oczekuje na przetworzenie';
 			$sqlObj->FILE_NAME=$files[0];
-			$sqlObj->OLD_LAYER_TYPE=$LAYER_TYPE[0]['LAYER_TYPE'];
+			$sqlObj->OLD_LAYER_TYPE=$layer[0]['LAYER_TYPE'];
 			$affected = DB::getDB()->UPDATE_OBJ('WMS_LAYERS', $sqlObj);
 			if ($affected) SE_Layout::alert('success','Oznaczono plik '.$files[0].' do przetworzenia.');
 			else SE_Layout::alert('warning','Plik '.$files[0].' został już wcześniej oznaczony do przetworzenia.');
@@ -493,6 +495,7 @@ fi
 
 			$layers=DB::getPDO()->fetchall("select ID,FILE_NAME from WMS_LAYERS where LAYER_TYPE='GeoTIFF' and FILE_STATUS='TO_GENERATE'");
 			foreach ($layers as $layer) {
+echo $layer['ID']."\n";
 				$destFolderPath = $this->getDirectory($layer['ID']);
 				if(!is_file($destFolderPath.'/'.$layer['FILE_NAME'])) {
 					DB::getDB()->UPDATE_OBJ('WMS_LAYERS',(object) array('ID'=>$layer['ID'],'FILE_STATUS'=>'ERROR','FILE_STATUS_INFO'=>'Wystąpił błąd pliku tif'));
@@ -508,7 +511,7 @@ fi
 				$replace = array($layer['ID'],$destFolderPath,$layer['FILE_NAME']);
 				$bash = str_replace($search,$replace,$bashSchema);
 				file_put_contents('/tmp/generate_wms-'.$layer['ID'].'.sh',$bash);
-				shell_exec('su - root -c "nohup /bin/sh /tmp/generate_wms-'.$layer['ID'].'.sh >> /tmp/generate_wms-'.$layer['ID'].'.log"');
+				shell_exec('su - root -c "/bin/sh /tmp/generate_wms-'.$layer['ID'].'.sh > /tmp/generate_wms-'.$layer['ID'].'.log 2>&1 &"');
 			}
 				
 		} catch (Exception $e) {