diff getepg.php @ 111:3bed74eca373

change: EPG取得並列化が可能かどうかを判定するように変更
author epgrec@park.mda.or.jp <yoneda@recorder.localnet.mda.or.jp>
date Sat, 13 Mar 2010 16:45:29 +0900
parents c29d41d0c945
children b3ba2658a228 481e789605e3
line wrap: on
line diff
--- a/getepg.php	Mon Mar 08 19:17:56 2010 +0900
+++ b/getepg.php	Sat Mar 13 16:45:29 2010 +0900
@@ -1,17 +1,19 @@
 #!/usr/bin/php
 <?php
-  include_once('config.php');
+  $script_path = dirname( __FILE__ );
+  chdir( $script_path );
+  include_once( $script_path . '/config.php');
   include_once( INSTALL_PATH . '/DBRecord.class.php' );
   include_once( INSTALL_PATH . '/Reservation.class.php' );
   include_once( INSTALL_PATH . '/Keyword.class.php' );
   include_once( INSTALL_PATH . '/Settings.class.php' );
+  include_once( INSTALL_PATH . '/storeProgram.inc.php' );
   
   // 緇剛
   if( ! defined( "BS_EPG_CHANNEL" )  ) define( "BS_EPG_CHANNEL",  "211"  );
   if( ! defined( "CS1_EPG_CHANNEL" ) ) define( "CS1_EPG_CHANNEL", "CS8"  );
   if( ! defined( "CS2_EPG_CHANNEL" ) ) define( "CS2_EPG_CHANNEL", "CS24" );
   
-  
   function check_file( $file ) {
 	// <ゃ≦馹
 	if( ! file_exists( $file ) ) return true;
@@ -25,6 +27,11 @@
 	return false;
   }
   
+  // 筝純桁慎羞宴顄帥鴻
+  $use_para = false;
+  $use_para = (function_exists( "pcntl_fork" ) && function_exists( "posix_setsid" ) && function_exists( "pcntl_signal" ) && function_exists("pcntl_setpriority"));
+  
+  
   $settings = Settings::factory();
   
   $temp_xml_bs  = $settings->temp_xml."_bs";
@@ -43,8 +50,14 @@
   		exec( $cmdline );
   		$cmdline = $settings->epgdump." /BS ".$settings->temp_data." ".$temp_xml_bs;
   		exec( $cmdline );
-		$cmdline = INSTALL_PATH."/storeProgram.php BS ".$temp_xml_bs." >/dev/null 2>&1 &";
-		exec( $cmdline );
+  		if( $use_para ) {
+			$cmdline = INSTALL_PATH."/storeProgram.php BS ".$temp_xml_bs." >/dev/null 2>&1 &";
+			exec( $cmdline );
+		}
+		else {
+			storeProgram( "BS", $temp_xml_bs );
+			if( file_exists( $temp_xml_bs ) ) @unlink( $temp_xml_bs );
+		}
   		if( file_exists( $settings->temp_data ) ) @unlink( $settings->temp_data );
 	}
 
@@ -56,8 +69,14 @@
 			exec( $cmdline );
 			$cmdline = $settings->epgdump." /CS ".$settings->temp_data." ".$temp_xml_cs1;
 			exec( $cmdline );
-			$cmdline = INSTALL_PATH."/storeProgram.php CS ".$temp_xml_cs1." >/dev/null 2>&1 &";
-			exec( $cmdline );
+			if( $use_para ) {
+				$cmdline = INSTALL_PATH."/storeProgram.php CS ".$temp_xml_cs1." >/dev/null 2>&1 &";
+				exec( $cmdline );
+			}
+			else {
+				storeProgram( "CS", $temp_xml_cs1 );
+				if( file_exists( $temp_xml_cs1 ) ) @unlink( $temp_xml_cs1 );
+			}
 			if( file_exists( $settings->temp_data ) ) @unlink( $settings->temp_data );
 		}
 		$num = DBRecord::countRecords(  RESERVE_TBL, "WHERE complete = '0' AND (type = 'BS' OR type = 'CS') AND endtime > now() AND starttime < addtime( now(), '00:03:05')" );
@@ -66,8 +85,14 @@
 			exec( $cmdline );
 			$cmdline = $settings->epgdump." /CS ".$settings->temp_data." ".$temp_xml_cs2;
 			exec( $cmdline );
-			$cmdline = INSTALL_PATH."/storeProgram.php CS ".$temp_xml_cs2." >/dev/null 2>&1 &";
-			exec( $cmdline );
+			if( $use_para ) {
+				$cmdline = INSTALL_PATH."/storeProgram.php CS ".$temp_xml_cs2." >/dev/null 2>&1 &";
+				exec( $cmdline );
+			}
+			else {
+				storeProgram( "CS", $temp_xml_cs2 );
+				if( file_exists( $temp_xml_cs2 ) ) @unlink( $temp_xml_cs2 );
+			}
 			if( file_exists( $settings->temp_data ) ) @unlink( $settings->temp_data );
 	  	}
   	}
@@ -83,11 +108,22 @@
 			exec( $cmdline );
 			$cmdline = $settings->epgdump." ".$key." ".$settings->temp_data." ".$temp_xml_gr.$value."";
 			exec( $cmdline );
-			$cmdline = INSTALL_PATH."/storeProgram.php GR ".$temp_xml_gr.$value." >/dev/null 2>&1 &";
-			exec( $cmdline );
+			if( $use_para ) {
+				$cmdline = INSTALL_PATH."/storeProgram.php GR ".$temp_xml_gr.$value." >/dev/null 2>&1 &";
+				exec( $cmdline );
+			}
+			else {
+				storeProgram( "GR", $temp_xml_gr.$value );
+				if( file_exists( $temp_xml_gr.$value ) ) @unlink( $temp_xml_gr.$value );
+			}
 			if( file_exists( $settings->temp_data ) ) @unlink( $settings->temp_data );
   		}
   	}
   }
+  // 筝х
+  if( $use_para ) exit();
   
+  garbageClean();			//  筝荀違
+  doKeywordReservation();	// 若若篋膣
+  exit();
 ?>
\ No newline at end of file