Skip to content

Commit 0b9c63d

Browse files
niclopezNaktibalda
authored andcommitted
Added clearQueue and clearAllQueues methods to AMQP module (#3404)
1 parent f4278c1 commit 0b9c63d

File tree

1 file changed

+33
-1
lines changed

1 file changed

+33
-1
lines changed

src/Codeception/Module/AMQP.php

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,38 @@ public function grabMessageFromQueue($queue)
197197
return $message;
198198
}
199199

200+
/**
201+
* Purge a specific queue defined in config.
202+
*
203+
* ``` php
204+
* <?php
205+
* $I->purgeQueue('queue.emails');
206+
* ?>
207+
* ```
208+
*/
209+
public function purgeQueue($queueName = '')
210+
{
211+
if (! in_array($queueName, $this->config['queues'])) {
212+
throw new ModuleException(__CLASS__, "'$queueName' doesn't exist in queues config list");
213+
}
214+
215+
$this->connection->channel()->queue_purge($queueName, true);
216+
}
217+
218+
/**
219+
* Purge all queues defined in config.
220+
*
221+
* ``` php
222+
* <?php
223+
* $I->purgeAllQueues();
224+
* ?>
225+
* ```
226+
*/
227+
public function purgeAllQueues()
228+
{
229+
$this->cleanup();
230+
}
231+
200232
protected function cleanup()
201233
{
202234
if (!isset($this->config['queues'])) {
@@ -216,4 +248,4 @@ protected function cleanup()
216248
}
217249
}
218250
}
219-
}
251+
}

0 commit comments

Comments
 (0)