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

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

См. также: Scalr\System\Zmq\Cron\TaskInterface::enqueue()
public enqueue ( )
    public function enqueue()
    {
        $queue = new ArrayObject([]);
        if (!\Scalr::getContainer()->analytics->enabled) {
            $this->log("INFO", "Terminating the process as Cost analytics is disabled in the config.");
            exit;
        }
        if (SettingEntity::getValue(SettingEntity::ID_FORBID_AUTOMATIC_UPDATE_AWS_PRICES)) {
            $this->log("INFO", "Terminating the process because of overriding AWS prices has been forbidden by financial admin.");
            exit;
        }
        $urls = array('https://a0.awsstatic.com/pricing/1/ec2/linux-od.min.js', 'https://a0.awsstatic.com/pricing/1/ec2/mswin-od.min.js', 'https://a0.awsstatic.com/pricing/1/ec2/previous-generation/linux-od.min.js', 'https://a0.awsstatic.com/pricing/1/ec2/previous-generation/mswin-od.min.js');
        foreach ($urls as $link) {
            $json = trim(preg_replace('/^.+?callback\\((.+?)\\);\\s*$/sU', '\\1', $this->getPricingContent($link)));
            $data = json_decode(preg_replace('/(\\w+):/', '"\\1":', $json));
            if (!empty($data->config->regions)) {
                foreach ($data->config->regions as $rd) {
                    $rd->url = basename($link);
                    $queue->append($rd);
                }
            }
        }
        return $queue;
    }