@@ -30,6 +30,17 @@ class DbalDriver implements DriverInterface
30
30
*/
31
31
private $ queueMetaRegistry ;
32
32
33
+ /**
34
+ * @var array
35
+ */
36
+ private static $ priorityMap = [
37
+ MessagePriority::VERY_LOW => 0 ,
38
+ MessagePriority::LOW => 1 ,
39
+ MessagePriority::NORMAL => 2 ,
40
+ MessagePriority::HIGH => 3 ,
41
+ MessagePriority::VERY_HIGH => 4 ,
42
+ ];
43
+
33
44
/**
34
45
* @param DbalContext $context
35
46
* @param Config $config
@@ -63,6 +74,9 @@ public function createTransportMessage(Message $message)
63
74
$ transportMessage ->setDelay ($ message ->getDelay ());
64
75
$ transportMessage ->setReplyTo ($ message ->getReplyTo ());
65
76
$ transportMessage ->setCorrelationId ($ message ->getCorrelationId ());
77
+ if (array_key_exists ($ message ->getPriority (), self ::$ priorityMap )) {
78
+ $ transportMessage ->setPriority (self ::$ priorityMap [$ message ->getPriority ()]);
79
+ }
66
80
67
81
return $ transportMessage ;
68
82
}
@@ -83,11 +97,16 @@ public function createClientMessage(PsrMessage $message)
83
97
$ clientMessage ->setContentType ($ message ->getHeader ('content_type ' ));
84
98
$ clientMessage ->setMessageId ($ message ->getMessageId ());
85
99
$ clientMessage ->setTimestamp ($ message ->getTimestamp ());
86
- $ clientMessage ->setPriority (MessagePriority::NORMAL );
87
100
$ clientMessage ->setDelay ($ message ->getDelay ());
88
101
$ clientMessage ->setReplyTo ($ message ->getReplyTo ());
89
102
$ clientMessage ->setCorrelationId ($ message ->getCorrelationId ());
90
103
104
+ $ priorityMap = array_flip (self ::$ priorityMap );
105
+ $ priority = array_key_exists ($ message ->getPriority (), $ priorityMap ) ?
106
+ $ priorityMap [$ message ->getPriority ()] : MessagePriority::NORMAL ;
107
+ $ clientMessage ->setPriority ($ priority );
108
+
109
+
91
110
return $ clientMessage ;
92
111
}
93
112
@@ -156,4 +175,12 @@ public function getConfig()
156
175
{
157
176
return $ this ->config ;
158
177
}
178
+
179
+ /**
180
+ * @return array
181
+ */
182
+ public static function getPriorityMap ()
183
+ {
184
+ return self ::$ priorityMap ;
185
+ }
159
186
}
0 commit comments