Yii2 Очередь возвращает возвращаемое значение из функции execute - и отправляет обратно в очередь - PullRequest
0 голосов
/ 12 февраля 2020

Я новичок ie в Yii2. Я хочу знать, как я собираюсь получить значение из функции execute () очереди. или я должен генерировать webhooks для этого. и как я могу Pu sh ту же функцию в очередь с тем же идентификатором очереди. Мой код:

public function execute($queue)
    {
        if($this->get_xml() != false){
            return "Executed Successfully";
        } else {
            // Push back to the queue
        }
    }

private function get_xml(){
        try{
            $authorization = 'Basic '.base64_encode(\Yii::$app->params['adapter']['username'].':'.\Yii::$app->params['adapter']['password']);
            $curl = curl_init(\Yii::$app->params['adapter']['cic_url']);
            curl_setopt ($curl, CURLOPT_HTTPHEADER,[
                "MCL-Interface: ".\Yii::$app->params['adapter']['mcl_interface'],
                "Authorization: ".$authorization,
                "Content-Type: text/xml"
            ]);
            curl_setopt($curl, CURLOPT_POST, true);
            curl_setopt($curl, CURLOPT_POSTFIELDS, $this->get_cic_body());
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
            $result = curl_exec($curl);
            if(curl_errno($curl)){ throw new \Exception(curl_error($curl));}
            curl_close($curl);
            $authentication_match = [];$not_ready_match = [];
            preg_match_all('/AuthenticationFailure/m',$result,$authentication_match,PREG_PATTERN_ORDER);
            if(count($authentication_match[0]) == 0){
                preg_match_all('/NOT READY/m',$result,$not_ready_match,PREG_PATTERN_ORDER);
                return (count($not_ready_match[0]) == 0) ? false : $result;
            } else { return false; }
        } catch (\Exception $exception){ return false; }
    }
}

Любая помощь будет оценена

...