Scalr\System\Zmq\Cron\Task\DnsManager::enqueue PHP Метод

enqueue() публичный Метод

См. также: Scalr\System\Zmq\Cron\TaskInterface::enqueue()
public enqueue ( )
    public function enqueue()
    {
        $db = \Scalr::getDb();
        $queue = new ArrayObject([]);
        if (!\Scalr::config('scalr.dns.global.enabled')) {
            return $queue;
        }
        $this->getLogger()->info("Fetching records to process...");
        $rs = $db->Execute("\n            SELECT z.id\n            FROM dns_zones z\n            JOIN clients c ON c.id = z.client_id\n            WHERE z.status NOT IN (?, ?) OR (z.isonnsserver = '1' AND z.status = ?)\n            ORDER BY c.`priority` DESC\n            LIMIT 100\n        ", [DNS_ZONE_STATUS::ACTIVE, DNS_ZONE_STATUS::INACTIVE, DNS_ZONE_STATUS::INACTIVE]);
        while ($rec = $rs->FetchRow()) {
            $obj = new stdClass();
            $obj->id = $rec['id'];
            $queue->append($obj);
        }
        if ($cnt = count($queue)) {
            $this->getLogger()->info("%d record%s %s been found.", $cnt, $cnt == 1 ? '' : 's', $cnt == 1 ? 'has' : 'have');
        } else {
            $this->getLogger()->info("Could not find any record.");
        }
        return $queue;
    }