public static function execute() { // In case of excepted execution flow queue must be empty // when calling code gets control $queue = self::$queue; self::$queue = array(); $lengthBeforeOprimization = count($queue); $queue = self::optimizeQueue($queue); $lengthAfterOprimization = count($queue); // $s = 'Execute queue, length: ' . $lengthAfterOprimization // . ' (removed elements during optimization: ' // . ($lengthBeforeOprimization - $lengthAfterOprimization) // . ')'; //soundex($s); $arUsersAffected = array(); foreach ($queue as $request) { $arUsersAffected = array_merge($arUsersAffected, $request['arUsers']); self::processUsersCounters($request['counterId'], $request['operation'], $request['arUsers'], $request['delta']); } $arUsersAffected = array_unique($arUsersAffected); foreach ($arUsersAffected as $userId) { self::refreshTotalCounter($userId); } }