@@ -139,8 +139,7 @@ public function run(): void
139
139
];
140
140
141
141
if ($ maxMessages ) {
142
- $ arguments [] =
143
- '--max-messages= ' . min ($ consumer ->getMaxMessages () ?? $ maxMessages , $ maxMessages );
142
+ $ arguments = $ this ->addMaxMessagesArgument ($ arguments , $ consumer , $ maxMessages );
144
143
}
145
144
146
145
$ command = $ php . ' ' . BP . '/bin/magento queue:consumers:start %s %s '
@@ -155,7 +154,7 @@ public function run(): void
155
154
];
156
155
157
156
if ($ maxMessages ) {
158
- $ arguments[] = ' --max-messages= ' . min ( $ consumer -> getMaxMessages () ?? $ maxMessages , $ maxMessages );
157
+ $ arguments = $ this -> addMaxMessagesArgument ( $ arguments , $ consumer , $ maxMessages );
159
158
}
160
159
161
160
$ command = $ php . ' ' . BP . '/bin/magento queue:consumers:start %s %s '
@@ -166,6 +165,32 @@ public function run(): void
166
165
}
167
166
}
168
167
168
+ /**
169
+ * Add max-messages argument and log warning if exceeds default
170
+ *
171
+ * @param array $arguments Arguments array to append to
172
+ * @param ConsumerConfigItemInterface $consumer
173
+ * @param int $defaultMaxMessages
174
+ * @return array
175
+ */
176
+ private function addMaxMessagesArgument (array $ arguments , ConsumerConfigItemInterface $ consumer , int $ defaultMaxMessages ): array
177
+ {
178
+ $ consumerMaxMessages = $ consumer ->getMaxMessages () ?? $ defaultMaxMessages ;
179
+
180
+ if ($ consumerMaxMessages > $ defaultMaxMessages ) {
181
+ $ this ->logger ->warning (__ (
182
+ 'Consumer "%1" has max-messages=%2 which exceeds the configured default (%3). This may probably cause high memory usage or long processing times. ' ,
183
+ $ consumer ->getName (),
184
+ $ consumerMaxMessages ,
185
+ $ defaultMaxMessages
186
+ ));
187
+ }
188
+
189
+ $ arguments [] = '--max-messages= ' . $ consumerMaxMessages ;
190
+
191
+ return $ arguments ;
192
+ }
193
+
169
194
/**
170
195
* Checks that the consumer can be run
171
196
*
0 commit comments