9
9
use yii \base \NotSupportedException ;
10
10
use yii \di \Instance ;
11
11
use yii \httpclient \Exception ;
12
- use yii \queue \PushEvent ;
13
12
14
13
class Queue extends \yii \queue \cli \Queue
15
14
{
@@ -24,7 +23,7 @@ class Queue extends \yii\queue\cli\Queue
24
23
public string $ queue = 'default ' ;
25
24
/** @var ServiceBus[] */
26
25
public array $ queues = [
27
- 'default ' => 'serviceBus '
26
+ 'default ' => 'serviceBus ' ,
28
27
];
29
28
// endregion Public Properties
30
29
@@ -45,6 +44,26 @@ public function init(): void
45
44
// endregion Initialization
46
45
47
46
// 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
+
48
67
/**
49
68
* Listens queue and runs each job.
50
69
*
@@ -60,21 +79,6 @@ public function run(bool $repeat, ?string $queue = null, int $timeout = 30): ?in
60
79
return $ this ->runWorker (fn (callable $ canContinue ) => $ this ->processWorker ($ canContinue , $ repeat , $ queue ?? $ this ->queue , $ timeout ));
61
80
}
62
81
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
-
78
82
/**
79
83
* @param string $id of a job message
80
84
*
0 commit comments