get('queue')->pop(); $connection = $queue->getResource(); $queueForFunctions = new Func($connection); foreach ($this->schedules as $schedule) { if (!$schedule['active']) { $dbForConsole->deleteDocument( 'schedules', $schedule['$id'], ); unset($this->schedules[$schedule['resourceId']]); continue; } $now = new \DateTime(); $scheduledAt = new \DateTime($schedule['schedule']); if ($scheduledAt > $now) { continue; } $queueForFunctions ->setType('schedule') // Set functionId instead of function as we don't have $dbForProject // TODO: Refactor to use function instead of functionId ->setFunctionId($schedule['resource']['functionId']) ->setExecution($schedule['resource']) ->setMethod($schedule['data']['method'] ?? 'POST') ->setPath($schedule['data']['path'] ?? '/') ->setHeaders($schedule['data']['headers'] ?? []) ->setBody($schedule['data']['body'] ?? '') ->setProject($schedule['project']) ->trigger(); $dbForConsole->deleteDocument( 'schedules', $schedule['$id'], ); unset($this->schedules[$schedule['resourceId']]); } $queue->reclaim(); } }