It seams we are dealing with this part of the code
/*
* This is the function that performs the autoresponder subscription processing
*/
class WPRBackgroundProcessor {
public static function autoresponder_process_subscriber($subscriber_id) {
$getAutoresponderSubscriptionQuery = sprintf("SELECT * FROM {$wpdb->prefix}wpr_followup_subscriptions subscription, {$wpdb->prefix}wpr_subscribers subscribers WHERE
subscription.sid=%d AND
subscribers.id=subscription.sid AND
subscribers.active=1 AND subscribers.confirmed=1;", $subscriber_id);
$subscriptionResults = $wpdb->get_results($getAutoresponderSubscriptionQuery);
if (0 == count ($subscriptionResults)) {
return;
}
}
public static function process_autoresponders() {
$processor = AutoresponderProcessor::getProcessor();
set_time_limit(WPR_MAX_AUTORESPONDER_PROCESS_EXECUTION_TIME);
$timeOfStart = time();
$currentTime = new DateTime(sprintf("@%d", $timeOfStart));
$timeWhenAutoresponderProcessLastDidAHeartBeat = get_option("_wpr_autoresponder_process_status");
if (self::whetherAnotherInstanceIsAlreadyRunning($timeOfStart, $timeWhenAutoresponderProcessLastDidAHeartBeat)) {
return;
}
//set the time of ping for the autoresponder process status variable
update_option("_wpr_autoresponder_process_status",$timeOfStart);
//set the start time of the autoresponder process
do_action("_wpr_autoresponder_process_start", $currentTime);
//run the autoresponder processor
$processor->run_for_time($currentTime);
//call the hooks that need notification for the
do_action('_wpr_autoresponder_process_end', $currentTime);
update_option("_wpr_autoresponder_process_status","stopped");
}
public static function whetherAnotherInstanceIsAlreadyRunning($timeOfStart, $timeWhenAutoresponderProcessLastDidAHeartBeat)
{
$timeMaximumExecutionTimeAgo = $timeOfStart - WPR_MAX_AUTORESPONDER_PROCESS_EXECUTION_TIME;
if (!empty($timeWhenAutoresponderProcessLastDidAHeartBeat) && $timeWhenAutoresponderProcessLastDidAHeartBeat != "stopped") {
$timeWhenAutoresponderProcessLastDidAHeartBeat = intval($timeWhenAutoresponderProcessLastDidAHeartBeat);
if ($timeWhenAutoresponderProcessLastDidAHeartBeat != 0 && (self::whetherLastAutoresponderProcessHeartBeatValidityExpired($timeWhenAutoresponderProcessLastDidAHeartBeat, $timeMaximumExecutionTimeAgo))) {
return true;
}
}
return false;
}
private static function whetherLastAutoresponderProcessHeartBeatValidityExpired($timeWhenAutoresponderProcessLastDidAHeartBeat, $timeMaximumExecutionTimeAgo)
{
return !($timeWhenAutoresponderProcessLastDidAHeartBeat < $timeMaximumExecutionTimeAgo);
}
}
Anyone got a Idea how to fix it ??