Let the cronhook be called different from the cron job.
This commit is contained in:
		
					parent
					
						
							
								7edce8e266
							
						
					
				
			
			
				commit
				
					
						12659fc3a1
					
				
			
		
					 3 changed files with 31 additions and 15 deletions
				
			
		| 
						 | 
				
			
			@ -225,9 +225,6 @@ function cron_run(&$argv, &$argc){
 | 
			
		|||
 | 
			
		||||
	$d = datetime_convert();
 | 
			
		||||
 | 
			
		||||
	if(! $restart)
 | 
			
		||||
		proc_run('php','include/cronhooks.php');
 | 
			
		||||
 | 
			
		||||
	// Only poll from those with suitable relationships,
 | 
			
		||||
	// and which have a polling address and ignore Diaspora since
 | 
			
		||||
	// we are unable to match those posts with a Diaspora GUID and prevent duplicates.
 | 
			
		||||
| 
						 | 
				
			
			@ -339,6 +336,6 @@ function cron_run(&$argv, &$argc){
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
if (array_search(__file__,get_included_files())===0){
 | 
			
		||||
  cron_run($_SERVER["argv"],$_SERVER["argc"]);
 | 
			
		||||
  killme();
 | 
			
		||||
	cron_run($_SERVER["argv"],$_SERVER["argc"]);
 | 
			
		||||
	killme();
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,11 +11,11 @@ function cronhooks_run(&$argv, &$argc){
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	if(is_null($db)) {
 | 
			
		||||
	    @include(".htconfig.php");
 | 
			
		||||
    	require_once("include/dba.php");
 | 
			
		||||
	    $db = new dba($db_host, $db_user, $db_pass, $db_data);
 | 
			
		||||
    	unset($db_host, $db_user, $db_pass, $db_data);
 | 
			
		||||
  	};
 | 
			
		||||
		@include(".htconfig.php");
 | 
			
		||||
		require_once("include/dba.php");
 | 
			
		||||
		$db = new dba($db_host, $db_user, $db_pass, $db_data);
 | 
			
		||||
		unset($db_host, $db_user, $db_pass, $db_data);
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	require_once('include/session.php');
 | 
			
		||||
	require_once('include/datetime.php');
 | 
			
		||||
| 
						 | 
				
			
			@ -35,17 +35,31 @@ function cronhooks_run(&$argv, &$argc){
 | 
			
		|||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	$last = get_config('system','last_cronhook');
 | 
			
		||||
 | 
			
		||||
	$poll_interval = intval(get_config('system','cronhook_interval'));
 | 
			
		||||
	if(! $poll_interval)
 | 
			
		||||
		$poll_interval = 9;
 | 
			
		||||
 | 
			
		||||
	if($last) {
 | 
			
		||||
		$next = $last + ($poll_interval * 60);
 | 
			
		||||
		if($next > time()) {
 | 
			
		||||
			logger('cronhook intervall not reached');
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	$lockpath = get_lockpath();
 | 
			
		||||
	if ($lockpath != '') {
 | 
			
		||||
		$pidfile = new pidfile($lockpath, 'cronhooks');
 | 
			
		||||
		if($pidfile->is_already_running()) {
 | 
			
		||||
			logger("cronhooks: Already running");
 | 
			
		||||
			if ($pidfile->running_time() > 19*60) {
 | 
			
		||||
                                $pidfile->kill();
 | 
			
		||||
                                logger("cronhooks: killed stale process");
 | 
			
		||||
				$pidfile->kill();
 | 
			
		||||
				logger("cronhooks: killed stale process");
 | 
			
		||||
				// Calling a new instance
 | 
			
		||||
				proc_run('php','include/cronhooks.php');
 | 
			
		||||
                        }
 | 
			
		||||
			}
 | 
			
		||||
			exit;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -62,10 +76,12 @@ function cronhooks_run(&$argv, &$argc){
 | 
			
		|||
 | 
			
		||||
	logger('cronhooks: end');
 | 
			
		||||
 | 
			
		||||
	set_config('system','last_cronhook', time());
 | 
			
		||||
 | 
			
		||||
	return;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if (array_search(__file__,get_included_files())===0){
 | 
			
		||||
  cronhooks_run($_SERVER["argv"],$_SERVER["argc"]);
 | 
			
		||||
  killme();
 | 
			
		||||
	cronhooks_run($_SERVER["argv"],$_SERVER["argc"]);
 | 
			
		||||
	killme();
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -30,6 +30,9 @@ function poller_run(&$argv, &$argc){
 | 
			
		|||
		// Run the cron job that calls all other jobs
 | 
			
		||||
		proc_run("php","include/cron.php");
 | 
			
		||||
 | 
			
		||||
		// Run the cronhooks job separately from cron for being able to use a different timing
 | 
			
		||||
		proc_run("php","include/cronhooks.php");
 | 
			
		||||
 | 
			
		||||
		// Cleaning dead processes
 | 
			
		||||
		$r = q("SELECT DISTINCT(`pid`) FROM `workerqueue` WHERE `executed` != '0000-00-00 00:00:00'");
 | 
			
		||||
		foreach($r AS $pid)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue