@@ -32,6 +32,7 @@ protected function configure()
3232 ->setDescription ('Purge queues ' )
3333 ->addOption ('file ' , 'f ' , InputOption::VALUE_REQUIRED , 'File to read ' )
3434 ->addOption ('force ' , null , InputOption::VALUE_NONE , 'If set, the task will not ask for confirm purge ' )
35+ ->addOption ('priority ' , 'p ' , InputOption::VALUE_OPTIONAL , 'Get messages from specific priority ' )
3536 ->addArgument ('queues ' , InputArgument::IS_ARRAY , 'queues to purge ' )
3637 ->setHelp (<<<HELP
3738This command purges queues.
@@ -52,9 +53,10 @@ protected function configure()
5253 /**
5354 * @param QueueClientInterface $queueClient
5455 * @param string $fileName
56+ * @param string|null $priority
5557 * @return int
5658 */
57- private function purgeFromFile ($ queueClient , $ fileName )
59+ private function purgeFromFile ($ queueClient , $ fileName, $ priority )
5860 {
5961 try {
6062 $ processor = new Processor ();
@@ -67,17 +69,17 @@ private function purgeFromFile($queueClient, $fileName)
6769 return 1 ;
6870 }
6971 array_walk_recursive ($ processedConfiguration , 'ReputationVIP\Bundle\QueueClientBundle\QueueClientFactory::resolveParameters ' , $ this ->getContainer ());
70- $ this ->output ->write ('Start delete queue. ' , Output::INFO );
72+ $ this ->output ->write ('Start purge queue. ' , Output::INFO );
7173 foreach ($ processedConfiguration [QueuesConfiguration::QUEUES_NODE ] as $ queue ) {
7274 $ queueName = $ queue [QueuesConfiguration::QUEUE_NAME_NODE ];
7375 try {
74- $ queueClient ->deleteQueue ($ queueName );
75- $ this ->output ->write ('Queue ' . $ queueName . ' deleted . ' , Output::INFO );
76+ $ queueClient ->purgeQueue ($ queueName, $ priority );
77+ $ this ->output ->write ('Queue ' . $ queueName . ' purged . ' , Output::INFO );
7678 } catch (\Exception $ e ) {
7779 $ this ->output ->write ($ e ->getMessage (), Output::WARNING );
7880 }
7981 }
80- $ this ->output ->write ('End delete queue. ' , Output::INFO );
82+ $ this ->output ->write ('End purge queue. ' , Output::INFO );
8183
8284 return 0 ;
8385 }
@@ -91,6 +93,7 @@ protected function execute(InputInterface $input, OutputInterface $output)
9193 {
9294 $ helper = $ this ->getHelper ('question ' );
9395 $ force = $ input ->getOption ('force ' ) ? true : false ;
96+
9497 try {
9598 /** @var LoggerInterface $logger */
9699 $ logger = $ this ->getContainer ()->get ('logger ' );
@@ -106,14 +109,21 @@ protected function execute(InputInterface $input, OutputInterface $output)
106109
107110 return 1 ;
108111 }
112+ $ priority = null ;
113+ if ($ input ->getOption ('priority ' )) {
114+ $ priority = $ input ->getOption ('priority ' );
115+ if (!in_array ($ priority , $ queueClient ->getPriorityHandler ()->getAll ())) {
116+ throw new \InvalidArgumentException ('Priority " ' . $ priority . '" not found. ' );
117+ }
118+ }
109119 if ($ input ->getOption ('file ' )) {
110120 $ fileName = $ input ->getOption ('file ' );
111121 if (!($ force || $ helper ->ask ($ input , $ output , new ConfirmationQuestion ('Purge queues in file " ' . $ fileName . '"? ' , false )))) {
112122
113123 return 0 ;
114124 }
115125
116- return $ this ->purgeFromFile ($ queueClient , $ fileName );
126+ return $ this ->purgeFromFile ($ queueClient , $ fileName, $ priority );
117127 } else {
118128 $ queues = $ input ->getArgument ('queues ' );
119129 if (count ($ queues )) {
@@ -123,7 +133,7 @@ protected function execute(InputInterface $input, OutputInterface $output)
123133 }
124134 foreach ($ queues as $ queue ) {
125135 try {
126- $ queueClient ->purgeQueue ($ queue );
136+ $ queueClient ->purgeQueue ($ queue, $ priority );
127137 $ this ->output ->write ('Queue ' . $ queue . ' purged. ' , Output::INFO );
128138 } catch (\Exception $ e ) {
129139 $ this ->output ->write ($ e ->getMessage (), Output::WARNING );
@@ -139,7 +149,7 @@ protected function execute(InputInterface $input, OutputInterface $output)
139149 return 0 ;
140150 }
141151
142- return $ this ->purgeFromFile ($ queueClient , $ fileName );
152+ return $ this ->purgeFromFile ($ queueClient , $ fileName, $ priority );
143153 } catch (InvalidArgumentException $ e ) {
144154 $ this ->output ->write ('No queue_client.queues_file parameter found. ' , Output::CRITICAL );
145155
0 commit comments