Experimenting with TTL for ignored devices
Publish PHP Package / docker (push) Successful in 7s Details

This commit is contained in:
Pavel Shevaev 2024-09-25 17:51:38 +03:00
parent f090413392
commit 69267565b1
1 changed files with 19 additions and 6 deletions

View File

@ -51,6 +51,7 @@ class SessionConfig
class Session
{
const RUN_SLEEP = 3;
const IGNORE_DEVICE_TTL = 300;
public string $name;
public SessionConfig $conf;
@ -111,18 +112,30 @@ class Session
function getDevices() : array
{
$devices = array_diff(
$this->device_pool->get(),
$this->ignored_devices
);
return $devices;
$this->_checkIgnoredDevices();
$connected_devices = $this->device_pool->get();
$actual_devices = array_diff($connected_devices, array_keys($this->ignored_devices));
return $actual_devices;
}
function _checkIgnoredDevices()
{
//let's remove from ignored devices devices which were ignored for some time
$devices = array_keys($this->ignored_devices);
foreach($devices as $device)
{
if(time() - $this->ignored_devices[$device] > self::IGNORE_DEVICE_TTL)
unset($this->ignored_devices[$device]);
}
}
function ignoreDevice(string $device, string $reason)
{
err("Ignoring device *$device*: $reason");
$this->ignored_devices[] = $device;
$this->ignored_devices[$device] = time();
}
function incBogusDevice(string $device)