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";
}
}
}
?>
-
Home
-
Compare
-
Sharp-aquossense7-vs-sharp-aquossense8shg11
|
User opinions: 0
|
User opinions: 0
|
|
|
|
|
Type |
Touch | Touch |
|
Waterproofness & dust-resistance |
IP65, IP68 | IP65, IP68 |
|
Dimensions |
152.00 x 70.00 x 8.00 mm | 153.00 x 71.00 x 8.40 mm |
|
Weight |
158.00 g | 159.00 g |
|
Display size |
6.10" | 6.10" |
|
Display |
Color / IGZO OLED 16M colors 60 Hz 1080 x 2432 px (6.10") 436 ppi | Color / IGZO OLED 1,07G colors 90 Hz 1080 x 2432 px (6.10") 436 ppi |
|
Display protection |
Buy screen protector
 | Buy screen protector
 |
|
Additional display |
 |  |
|
Protection of the secondary display |
 |  |
|
Talk time (max.) |
 | 4G: 3950 min. (65.8 h) |
|
Stand-by (max.) |
 | 4G: 690 h. (28.8 days) |
|
Standard battery |
Li-Ion 4570 mAhBuy powerbank
 | Li-Ion 5000 mAhBuy powerbank
 |
|
Quick battery charging |
USB Power Delivery | USB Power Delivery |
|
Wireless battery charging |
 |  |
|
Internal memory |
128 GB | 128 GB |
|
RAM memory |
6 GB | 6 GB |
|
Memory cards |
 microSD, microSDHC, microSDXC up to 1000 GBBuy memory card
 |  microSD, microSDHC, microSDXC up to 1000 GBBuy memory card
 |
|
Operating system |
Android 12 | Android 13 |
|
Processor |
Qualcomm Snapdragon 695 SM6375 | Qualcomm Snapdragon 6 Gen 1 SM6450 |
|
Processor clock |
2200 MHz | 2200 MHz |
|
GPU |
Adreno 619 @840 MHz | Adreno |
|
Touchscreen |
 |  |
|
DualSIM |
 |  |
|
SIM cards standard |
DualSIM(eSIM, nanoSIM) | DualSIM(eSIM, nanoSIM) |
|
DualSIM mode |
dual standby | dual standby |
|
Hybrid DualSIM |
 |  |
|
Announced |
3Q 2022 | 4Q 2023 |
|
Other names |
SH-53C; SHG10; SH-M24 | - |
|
GSM frequencies |
850 900 1800 1900 | 850 900 1800 1900 |
|
UMTS |
850 900 1900 2100 | 850 900 1900 2100 |
|
LTE standard |
FDD LTE: 2100, 1900, 1800, 1500, 900, 850, 700 TDD LTE: 3500, 2600, 2500 | FDD LTE: 2100, 1900, 1800, 1500, 900, 850, 700 TDD LTE: 3500, 2600, 2500 |
|
Standard 5G |
FDD 5G: 1800, 700 TDD 5G: 4700, 3700, 3500, 2500 | FDD 5G: 2100, 1800, 700 TDD 5G: 4700, 3700, 3500, 2500 |
|
CDMA |
 |  |
|
Standard TD-SCDMA |
 |  |
|
UMA |
 |  |
A D V E R T I S E M E N T
|
First camera |
 |  |
|
Camera type |
Standard | Standard |
|
Photo matrix |
50 Mpx | 50.3 Mpx |
|
Sensor size |
1/1,55 | 1/1,55 |
|
Resolution |
 | 8192x6144 px |
|
Optical zoom |
 |  |
|
Digital zoom |
 | 8x |
|
Field of view |
 | 84 ° |
|
Focal length |
23 mm | 23 mm |
|
Flash |
LED | LED |
|
Dual-colour LED flash |
 |  |
|
Video resolution |
 | 3840x2160 px |
|
Video formats |
H.264, H.265, MPEG4 | H.264, H.265, MPEG4 |
|
Additional |
AF, f/1.9 | AF, EIS, OIS, f/1.9 |
|
Second camera |
 |  |
|
Camera type |
Wide-angle | Wide-angle |
|
Photo matrix |
8 Mpx | 8 Mpx |
|
Optical zoom |
 |  |
|
Field of view |
 | 120 ° |
|
Focal length |
15 mm | 15 mm |
|
Flash |
LED | LED |
|
Dual-colour LED flash |
 |  |
|
Video formats |
H.264, H.265, MPEG4 | H.264, H.265, MPEG4 |
|
Additional |
FF, f/2.4 | FF, EIS, f/2.4 |
A D V E R T I S E M E N T