public static function cronStart() { @set_time_limit(0); global $wpdb; register_shutdown_function(array('smpush_cronsend', 'destruct')); self::$startTime = date('Y-m-d H:i:s'); self::$totalSent = 0; self::$tempunique = ''; self::resetIOS(); self::resetAND(); $TIMENOW = current_time('timestamp', 1); if (!session_id()) { session_start(); } smpush_sendpush::updateStats('', 0, true); $ios_name = $wpdb->get_var("SELECT ios_name FROM " . $wpdb->prefix . "push_connection WHERE id='" . self::$apisetting['def_connection'] . "'"); $queue = $wpdb->get_results("SELECT * FROM " . $wpdb->prefix . "push_cron_queue WHERE {$TIMENOW}>sendtime ORDER BY sendoptions ASC"); if ($queue) { foreach ($queue as $queueone) { if (empty(self::$tempunique)) { self::$tempunique = $queueone->sendoptions; } if (self::$tempunique != $queueone->sendoptions) { if (self::$iosCounter > 0) { self::sendPushCron('ios'); } if (self::$andCounter > 0) { self::sendPushCron('android'); } self::finishQueue(); self::$tempunique = $queueone->sendoptions; } if (self::$iosCounter >= 1000) { self::sendPushCron('ios'); } if (self::$andCounter >= 1000) { self::sendPushCron('android'); } if ($queueone->device_type == $ios_name) { self::$iosDelIDS[] = $queueone->id; self::$iosDevices[self::$iosCounter]['token'] = $queueone->token; self::$iosDevices[self::$iosCounter]['id'] = $queueone->id; self::$iosCounter++; } else { self::$andDelIDS[] = $queueone->id; self::$andDevices['token'][self::$andCounter] = $queueone->token; self::$andDevices['id'][self::$andCounter] = $queueone->id; self::$andCounter++; } self::$totalSent++; } if (self::$iosCounter > 0) { self::sendPushCron('ios'); } if (self::$andCounter > 0) { self::sendPushCron('android'); } } self::finishQueue(); die; }