Skip to content

Commit 450444e

Browse files
committed
add 'acceptMessage' property on service bus
1 parent 3a869dd commit 450444e

File tree

2 files changed

+22
-17
lines changed

2 files changed

+22
-17
lines changed

src/Queue.php

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
use yii\base\NotSupportedException;
1010
use yii\di\Instance;
1111
use yii\httpclient\Exception;
12-
use yii\queue\PushEvent;
1312

1413
class Queue extends \yii\queue\cli\Queue
1514
{
@@ -24,7 +23,7 @@ class Queue extends \yii\queue\cli\Queue
2423
public string $queue = 'default';
2524
/** @var ServiceBus[] */
2625
public array $queues = [
27-
'default' => 'serviceBus'
26+
'default' => 'serviceBus',
2827
];
2928
// endregion Public Properties
3029

@@ -45,6 +44,26 @@ public function init(): void
4544
// endregion Initialization
4645

4746
// region Public Methods
47+
public function push($job): ?string
48+
{
49+
$defaultQueue = $this->queue;
50+
51+
if (
52+
$job instanceof AzureJobInterface
53+
&& ($dedicatedQueue = $job->getQueue())
54+
&& isset($this->queues[$dedicatedQueue])
55+
&& $this->queues[$dedicatedQueue]->acceptMessage
56+
) {
57+
$this->queue = $dedicatedQueue;
58+
}
59+
60+
$result = parent::push($job);
61+
62+
$this->queue = $defaultQueue;
63+
64+
return $result;
65+
}
66+
4867
/**
4968
* Listens queue and runs each job.
5069
*
@@ -60,21 +79,6 @@ public function run(bool $repeat, ?string $queue = null, int $timeout = 30): ?in
6079
return $this->runWorker(fn (callable $canContinue) => $this->processWorker($canContinue, $repeat, $queue ?? $this->queue, $timeout));
6180
}
6281

63-
public function push($job): ?string
64-
{
65-
$defaultQueue = $this->queue;
66-
67-
if ($job instanceof AzureJobInterface && ($dedicatedQueue = $job->getQueue()) && isset($this->queues[$dedicatedQueue])) {
68-
$this->queue = $dedicatedQueue;
69-
}
70-
71-
$result = parent::push($job);
72-
73-
$this->queue = $defaultQueue;
74-
75-
return $result;
76-
}
77-
7882
/**
7983
* @param string $id of a job message
8084
*

src/service/ServiceBus.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ class ServiceBus extends Component
2222
// endregion Constants
2323

2424
// region Public Properties
25+
public bool $acceptMessage = true;
2526
public string $environment = 'servicebus.windows.net';
2627
public string $queue;
2728
public int $requestMaxRetries = 10;

0 commit comments

Comments
 (0)