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;
}