nineinchnick\nfy\components\DbQueue::send PHP Метод

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

public send ( $message, $category = null )
    public function send($message, $category = null)
    {
        $queueMessage = $this->createMessage($message);
        if ($this->beforeSend($queueMessage) !== true) {
            Yii::info(Yii::t('app', "Not sending message '{msg}' to queue {queue_label}.", ['msg' => $queueMessage->body, 'queue_label' => $this->label]), 'nfy');
            return;
        }
        $success = true;
        $subscriptions = models\DbSubscription::find()->current()->withQueue($this->id)->matchingCategory($category)->all();
        $trx = $queueMessage->getDb()->transaction !== null ? null : $queueMessage->getDb()->beginTransaction();
        // empty($subscriptions) &&
        if (!$queueMessage->save()) {
            Yii::error(Yii::t('app', "Failed to save message '{msg}' in queue {queue_label}.", ['msg' => $queueMessage->body, 'queue_label' => $this->label]) . ' ' . print_r($queueMessage->getErrors(), true), 'nfy');
            return false;
        }
        if (!$this->sendToSubscriptions($subscriptions, $queueMessage)) {
            $success = false;
        }
        $this->afterSend($queueMessage);
        if ($trx !== null) {
            $trx->commit();
        }
        Yii::info(Yii::t('app', "Sent message '{msg}' to queue {queue_label}.", ['msg' => $queueMessage->body, 'queue_label' => $this->label]), 'nfy');
        return $success;
    }