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);
     }
 }