فهرست منبع

One Call to Delete Jobs

own3mall 7 سال پیش
والد
کامیت
7901c5bac0
1فایلهای تغییر یافته به همراه8 افزوده شده و 2 حذف شده
  1. 8 2
      modules/cron/shared_cron_functions.php

+ 8 - 2
modules/cron/shared_cron_functions.php

@@ -118,6 +118,7 @@ function updateCronJobTokens($old_token, $token){
 
 function deleteJobsByHomeServerID($home_id){
 	global $db;
+	$jobIdsToDel = array();
 	$homeInfo = $db->getGameHome($home_id);
 	if($homeInfo){
 		$remote_servers = $db->getRemoteServers();
@@ -129,13 +130,18 @@ function deleteJobsByHomeServerID($home_id){
 			{
 				if(strstr($job, "homeid=" . $home_id))
 				{
-					$remote->scheduler_del_task($job_id);
+					$jobIdsToDel[] = $job_id;
 				}else if(strstr($job, "ip=" . $homeInfo["ip"]) && strstr($job, "port=" . $homeInfo["port"])){
-					$remote->scheduler_del_task($job_id);
+					$jobIdsToDel[] = $job_id;	
 				}
 			}
 		}
 	}
+	
+	if(is_array($jobIdsToDel) && count($jobIdsToDel) > 0){
+		// Only make one call
+		$remote->scheduler_del_task(implode(",", $jobIdsToDel));
+	}
 }
 
 function get_action_selector($action = false, $server_homes = false, $homeid_ip_port = false) {