';
class AmazonApiRateLimiter { /** * Minimalna przerwa między zapytaniami (sekundy). */ const INTERVAL_SECONDS = 2; /** * Nazwa pliku blokady w katalogu log/. */ const LOCK_FILENAME = 'amazon_api_rate.lock'; /** * @var string Pełna ścieżka do pliku blokady */ private $lockFilePath; /** * @var bool Tryb debug */ private $debug; public function __construct($debug = false) { $this->debug = $debug; $this->lockFilePath = MT_ROOT . '/../log/' . self::LOCK_FILENAME; } /** * Czeka, jeśli ostatnie zapytanie było wykonane wcześniej niż INTERVAL_SECONDS temu. * * Musi być wywołane bezpośrednio przed każdym zapytaniem do Amazon API. * Blokuje inne procesy (flock LOCK_EX) na czas weryfikacji i ewentualnego czekania, * dzięki czemu kolejka zapytań jest respektowana globalnie. * * @return void */ public function wait() { $fh = fopen($this->lockFilePath, 'c+'); if ($fh === false) { $this->debug('[DEBUG AmazonApiRateLimiter] Nie można otworzyć pliku blokady: ' . $this->lockFilePath); return; } // Zablokuj - inne procesy czekają tutaj flock($fh, LOCK_EX); // Odczytaj czas ostatniego wywołania API rewind($fh); $content = fread($fh, 32); $lastCall = (float)$content; $now = microtime(true); $elapsed = $now - $lastCall; $waitTime = self::INTERVAL_SECONDS - $elapsed; if ($waitTime > 0) { $waitMicroseconds = (int)($waitTime * 1000000); $this->debug('[DEBUG AmazonApiRateLimiter] Rate limit: czekam ' . round($waitTime, 3) . 's przed zapytaniem do API.'); usleep($waitMicroseconds); } // Zapisz aktualny timestamp jako czas ostatniego wywołania ftruncate($fh, 0); rewind($fh); fwrite($fh, microtime(true)); fflush($fh); // Zwolnij blokadę - następny proces może wejść flock($fh, LOCK_UN); fclose($fh); } /** * Wypisuje komunikat diagnostyczny na stdout, jeśli tryb debug jest włączony. * * @param string $msg * @return void */ private function debug($msg) { if ($this->debug) { echo $msg . "\n"; } } } ?>

BLU Studio G HD
daten des mobiltelefons auf ihrer seite

BLU Studio G HD

Daten des Mobiltelefons BLU Studio G HD auf Ihrer Seite

Hast du eigene Webseite? Willst du die Informationen über Standarddaten des Handys BLU Studio G HD irgendwo veröffentlichen? Das ist sehr einfach. Du kannst das Bild herunterladen oder kopieren und auf der Webseite folgenden Code hinzufügen:

Das Einfügen von diesem Code verursacht das Anzeigen von dem folgenden Bild:

W E R B U N G


Zuletzt angesehen