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"; } } } ?> Comparer les téléphones: Haier Elegance E9 :: GSMchoice.com ';
P U B L I C I T É

Comparaisons visuels ne sont pas disponibles pour les dispositifs mobiles.

Porównanie wizualne Haier Elegance E9

Vous pouvez comparer 4 modèles au maximum. Choisissez les marques et les modèles que vous souhaitez comparer et cliquez sur "Comparer".

Pour imiter plus exactement les dimensions du téléphone, choisissez le diagonal de votre moniteur, exprimé dans les pouces, de la case.

Haier Elegance E9
Haier Elegance E9

75.8 mm x 157.5 mm x 7.8 mm
202 grammes

Diagonale de l’écran: 5.99"
Densité de l’écran: 269 ppi