Fix missing time check

This commit is contained in:
Jake Barnby 2024-01-15 18:43:17 +13:00
parent a2d0385eba
commit 1666ba1645
No known key found for this signature in database
GPG key ID: C437A8CC85B96E9C
2 changed files with 13 additions and 4 deletions

View file

@ -178,8 +178,10 @@ abstract class ScheduleBase extends Action
Console::log("Sync tick: {$total} schedules were updated in " . ($timerEnd - $timerStart) . " seconds");
});
Timer::tick(static::ENQUEUE_TIMER * 1000, fn() =>
$this->enqueueResources($pools, $dbForConsole));
Timer::tick(
static::ENQUEUE_TIMER * 1000,
fn() => $this->enqueueResources($pools, $dbForConsole)
);
$this->enqueueResources($pools, $dbForConsole);
});

View file

@ -16,7 +16,7 @@ use function Swoole\Coroutine\run;
class ScheduleMessages extends ScheduleBase
{
public const UPDATE_TIMER = 3; // seconds
public const UPDATE_TIMER = 10; // seconds
public const ENQUEUE_TIMER = 60; // seconds
public static function getName(): string
@ -32,6 +32,13 @@ class ScheduleMessages extends ScheduleBase
protected function enqueueResources(Group $pools, Database $dbForConsole): void
{
foreach ($this->schedules as $schedule) {
$now = DateTime::now();
$scheduledAt = DateTime::formatTz($schedule['scheduledAt']);
if ($scheduledAt > $now) {
continue;
}
\go(function () use ($schedule, $pools, $dbForConsole) {
$queue = $pools->get('queue')->pop();
$connection = $queue->getResource();
@ -50,7 +57,7 @@ class ScheduleMessages extends ScheduleBase
$queue->reclaim();
unset($this->schedules[$schedule->getId()]);
unset($this->schedules[$schedule['resourceId']]);
});
}
}