From fcee9a0425c3b190fef9ca5f4518c5cf4044a5fc Mon Sep 17 00:00:00 2001 From: Maksim Kotlyar Date: Tue, 10 Oct 2017 12:16:08 +0300 Subject: [PATCH 01/11] [amqp-ext] Add basic consume method. --- pkg/amqp-ext/AmqpConsumer.php | 46 +++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/pkg/amqp-ext/AmqpConsumer.php b/pkg/amqp-ext/AmqpConsumer.php index 4a3591d37..c6042b54e 100644 --- a/pkg/amqp-ext/AmqpConsumer.php +++ b/pkg/amqp-ext/AmqpConsumer.php @@ -188,6 +188,52 @@ public function reject(PsrMessage $message, $requeue = false) ); } + /** + * @param float|int $timeout milliseconds, consumes endlessly if zero set + * @param callable $callback A callback function to which the + * consumed message will be passed. The + * function must accept at a minimum + * one parameter, an \Interop\Amqp\AmqpMessage object, + * and an optional second parameter + * the \Interop\Amqp\AmqpConsumer from which the message was + * consumed. The \Interop\Amqp\AmqpConsumer::consume() will + * not return the processing thread back to + * the PHP script until the callback + * function returns FALSE. + */ + public function basicConsume($timeout, callable $callback = null) + { + /** @var \AMQPQueue $extQueue */ + $extConnection = $this->getExtQueue()->getChannel()->getConnection(); + + $originalTimeout = $extConnection->getReadTimeout(); + try { + $extConnection->setReadTimeout($timeout / 1000); + + if ($callback) { + $this->getExtQueue()->consume(function (\AMQPEnvelope $extEnvelope, \AMQPQueue $q) use (&$callback) { + $message = $this->convertMessage($extEnvelope); + $message->setConsumerTag($q->getConsumerTag()); + + $queue = $this->context->createQueue($q->getName()); + $consumer = $this->context->createConsumer($queue); + + return call_user_func($callback, $message, $consumer); + }, AMQP_JUST_CONSUME); + } else { + $this->getExtQueue()->consume(null, Flags::convertConsumerFlags($this->flags), $this->consumerTag); + } + } catch (\AMQPQueueException $e) { + if ('Consumer timeout exceed' == $e->getMessage()) { + return null; + } + + throw $e; + } finally { + $extConnection->setReadTimeout($originalTimeout); + } + } + /** * @param int $timeout * From 30fd704bd9c7fa7a38bd8ed247f36b528ca49e70 Mon Sep 17 00:00:00 2001 From: Maksim Kotlyar Date: Tue, 10 Oct 2017 12:40:27 +0300 Subject: [PATCH 02/11] [consumption] queue consumer should use amqp basic consume if amqp context is used. --- pkg/enqueue/Consumption/QueueConsumer.php | 64 ++++++++++++++++++----- 1 file changed, 52 insertions(+), 12 deletions(-) diff --git a/pkg/enqueue/Consumption/QueueConsumer.php b/pkg/enqueue/Consumption/QueueConsumer.php index fe2aafcee..561314d3c 100644 --- a/pkg/enqueue/Consumption/QueueConsumer.php +++ b/pkg/enqueue/Consumption/QueueConsumer.php @@ -2,10 +2,13 @@ namespace Enqueue\Consumption; +use Enqueue\AmqpExt\AmqpConsumer; +use Enqueue\AmqpExt\AmqpContext; use Enqueue\Consumption\Exception\ConsumptionInterruptedException; use Enqueue\Consumption\Exception\InvalidArgumentException; use Enqueue\Consumption\Exception\LogicException; use Enqueue\Util\VarExport; +use Interop\Amqp\AmqpMessage; use Interop\Queue\PsrConsumer; use Interop\Queue\PsrContext; use Interop\Queue\PsrProcessor; @@ -150,6 +153,12 @@ public function consume(ExtensionInterface $runtimeExtension = null) $consumers[$queue->getQueueName()] = $this->psrContext->createConsumer($queue); } + foreach ($consumers as $consumer) { + if ($consumer instanceof AmqpConsumer) { + $consumer->basicConsume($this->receiveTimeout, null); + } + } + $extension = $this->extension ?: new ChainExtension([]); if ($runtimeExtension) { $extension = new ChainExtension([$extension, $runtimeExtension]); @@ -163,17 +172,48 @@ public function consume(ExtensionInterface $runtimeExtension = null) while (true) { try { - /** @var PsrQueue $queue */ - foreach ($this->boundProcessors as list($queue, $processor)) { - $consumer = $consumers[$queue->getQueueName()]; - - $context = new Context($this->psrContext); - $context->setLogger($logger); - $context->setPsrQueue($queue); - $context->setPsrConsumer($consumer); - $context->setPsrProcessor($processor); - - $this->doConsume($extension, $context); + if ($this->psrContext instanceof AmqpContext) { + reset($consumers); + /** @var AmqpConsumer $consumer */ + $consumer = current($consumers); + $consumer->basicConsume($this->receiveTimeout, function (AmqpMessage $message, AmqpConsumer $consumer) use ($extension, $logger) { + $currentProcessor = null; + + /** @var PsrQueue $queue */ + foreach ($this->boundProcessors as list($queue, $processor)) { + if ($queue->getQueueName() === $consumer->getQueue()->getQueueName()) { + $currentProcessor = $processor; + } + } + + if (false == $currentProcessor) { + throw new \LogicException(sprintf('The processor for the queue "%s" could not be found.', $consumer->getQueue()->getQueueName())); + } + + $context = new Context($this->psrContext); + $context->setLogger($logger); + $context->setPsrQueue($consumer->getQueue()); + $context->setPsrConsumer($consumer); + $context->setPsrProcessor($currentProcessor); + $context->setPsrMessage($message); + + $this->doConsume($extension, $context); + + return true; + }); + } else { + /** @var PsrQueue $queue */ + foreach ($this->boundProcessors as list($queue, $processor)) { + $consumer = $consumers[$queue->getQueueName()]; + + $context = new Context($this->psrContext); + $context->setLogger($logger); + $context->setPsrQueue($queue); + $context->setPsrConsumer($consumer); + $context->setPsrProcessor($processor); + + $this->doConsume($extension, $context); + } } } catch (ConsumptionInterruptedException $e) { $logger->info(sprintf('Consuming interrupted')); @@ -218,7 +258,7 @@ protected function doConsume(ExtensionInterface $extension, Context $context) throw new ConsumptionInterruptedException(); } - if ($message = $consumer->receive($this->receiveTimeout)) { + if ($context->getPsrMessage() || $message = $consumer->receive($this->receiveTimeout)) { $logger->info('Message received from the queue: '.$context->getPsrQueue()->getQueueName()); $logger->debug('Headers: {headers}', ['headers' => new VarExport($message->getHeaders())]); $logger->debug('Properties: {properties}', ['properties' => new VarExport($message->getProperties())]); From fee8fc5781ee24265bc4c5e19c2c2d2f9ba03016 Mon Sep 17 00:00:00 2001 From: Maksim Kotlyar Date: Tue, 10 Oct 2017 13:59:32 +0300 Subject: [PATCH 03/11] fixes --- pkg/enqueue/Consumption/QueueConsumer.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/pkg/enqueue/Consumption/QueueConsumer.php b/pkg/enqueue/Consumption/QueueConsumer.php index 561314d3c..112f46b97 100644 --- a/pkg/enqueue/Consumption/QueueConsumer.php +++ b/pkg/enqueue/Consumption/QueueConsumer.php @@ -258,14 +258,19 @@ protected function doConsume(ExtensionInterface $extension, Context $context) throw new ConsumptionInterruptedException(); } - if ($context->getPsrMessage() || $message = $consumer->receive($this->receiveTimeout)) { + $message = $context->getPsrMessage(); + if (false == $message) { + if ($message = $consumer->receive($this->receiveTimeout)) { + $context->setPsrMessage($message); + } + } + + if ($message) { $logger->info('Message received from the queue: '.$context->getPsrQueue()->getQueueName()); $logger->debug('Headers: {headers}', ['headers' => new VarExport($message->getHeaders())]); $logger->debug('Properties: {properties}', ['properties' => new VarExport($message->getProperties())]); $logger->debug('Payload: {payload}', ['payload' => new VarExport($message->getBody())]); - $context->setPsrMessage($message); - $extension->onPreReceived($context); if (!$context->getResult()) { $result = $processor->process($message, $this->psrContext); From 71a525a1a6d38f884bda652cdc7614ba7dc83345 Mon Sep 17 00:00:00 2001 From: Maksim Kotlyar Date: Tue, 10 Oct 2017 15:32:38 +0300 Subject: [PATCH 04/11] [consumption] fix echange cound not be decalred, no channel. --- pkg/enqueue/Consumption/QueueConsumer.php | 27 +++++++++++++---------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/pkg/enqueue/Consumption/QueueConsumer.php b/pkg/enqueue/Consumption/QueueConsumer.php index 112f46b97..53c74db17 100644 --- a/pkg/enqueue/Consumption/QueueConsumer.php +++ b/pkg/enqueue/Consumption/QueueConsumer.php @@ -3,7 +3,6 @@ namespace Enqueue\Consumption; use Enqueue\AmqpExt\AmqpConsumer; -use Enqueue\AmqpExt\AmqpContext; use Enqueue\Consumption\Exception\ConsumptionInterruptedException; use Enqueue\Consumption\Exception\InvalidArgumentException; use Enqueue\Consumption\Exception\LogicException; @@ -146,6 +145,10 @@ public function bind($queue, $processor) */ public function consume(ExtensionInterface $runtimeExtension = null) { + if (empty($this->boundProcessors)) { + throw new \LogicException('There is nothing to consume. It is required to bind something before calling consume method.'); + } + /** @var PsrConsumer[] $consumers */ $consumers = []; /** @var PsrQueue $queue */ @@ -153,12 +156,6 @@ public function consume(ExtensionInterface $runtimeExtension = null) $consumers[$queue->getQueueName()] = $this->psrContext->createConsumer($queue); } - foreach ($consumers as $consumer) { - if ($consumer instanceof AmqpConsumer) { - $consumer->basicConsume($this->receiveTimeout, null); - } - } - $extension = $this->extension ?: new ChainExtension([]); if ($runtimeExtension) { $extension = new ChainExtension([$extension, $runtimeExtension]); @@ -170,13 +167,19 @@ public function consume(ExtensionInterface $runtimeExtension = null) $logger = $context->getLogger() ?: new NullLogger(); $logger->info('Start consuming'); + $amqpConsumer = null; + foreach ($consumers as $consumer) { + if ($consumer instanceof AmqpConsumer) { + $consumer->basicConsume($this->receiveTimeout, null); + + $amqpConsumer = $consumer; + } + } + while (true) { try { - if ($this->psrContext instanceof AmqpContext) { - reset($consumers); - /** @var AmqpConsumer $consumer */ - $consumer = current($consumers); - $consumer->basicConsume($this->receiveTimeout, function (AmqpMessage $message, AmqpConsumer $consumer) use ($extension, $logger) { + if ($amqpConsumer) { + $amqpConsumer->basicConsume($this->receiveTimeout, function (AmqpMessage $message, AmqpConsumer $consumer) use ($extension, $logger) { $currentProcessor = null; /** @var PsrQueue $queue */ From e52b4768e23d6d1e4a3274374c840cb85a16749c Mon Sep 17 00:00:00 2001 From: Maksim Kotlyar Date: Tue, 10 Oct 2017 18:50:55 +0300 Subject: [PATCH 05/11] [amqp-ext] move basic consume logic to context. --- docker/Dockerfile | 1 + docker/php/amqp.so | Bin 0 -> 623432 bytes pkg/amqp-ext/AmqpContext.php | 124 ++++++++++++++++++ .../Spec/AmqpBasicConsumeBreakOnFalseTest.php | 22 ++++ ...asicConsumeFromAllSubscribedQueuesTest.php | 22 ++++ ...umeShouldAddConsumerTagOnSubscribeTest.php | 22 ++++ ...ouldRemoveConsumerTagOnUnsubscribeTest.php | 27 ++++ .../AmqpBasicConsumeUntilUnsubscribedTest.php | 27 ++++ 8 files changed, 245 insertions(+) create mode 100755 docker/php/amqp.so create mode 100644 pkg/amqp-ext/Tests/Spec/AmqpBasicConsumeBreakOnFalseTest.php create mode 100644 pkg/amqp-ext/Tests/Spec/AmqpBasicConsumeFromAllSubscribedQueuesTest.php create mode 100644 pkg/amqp-ext/Tests/Spec/AmqpBasicConsumeShouldAddConsumerTagOnSubscribeTest.php create mode 100644 pkg/amqp-ext/Tests/Spec/AmqpBasicConsumeShouldRemoveConsumerTagOnUnsubscribeTest.php create mode 100644 pkg/amqp-ext/Tests/Spec/AmqpBasicConsumeUntilUnsubscribedTest.php diff --git a/docker/Dockerfile b/docker/Dockerfile index fae39efd4..ffb51d818 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -17,6 +17,7 @@ RUN echo "extension=rdkafka.so" > /etc/php/7.1/cli/conf.d/10-rdkafka.ini RUN echo "extension=rdkafka.so" > /etc/php/7.1/fpm/conf.d/10-rdkafka.ini COPY ./php/cli.ini /etc/php/7.1/cli/conf.d/1-dev_cli.ini +COPY ./php/amqp.so /usr/lib/php/20160303/amqp.so COPY ./bin/dev_entrypoiny.sh /usr/local/bin/entrypoint.sh RUN chmod u+x /usr/local/bin/entrypoint.sh diff --git a/docker/php/amqp.so b/docker/php/amqp.so new file mode 100755 index 0000000000000000000000000000000000000000..442c0bb49068756a414e0f469b5f9b93a956ba13 GIT binary patch literal 623432 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%0DQf8UBom9hQYMzck$ehUm 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

yL>xAFZu@Aj4fPu#%31>mnD+{9bQnbCfCuf=J8 z_!9Fe4D9b$z}pr62JjYzA3#frHlCIJ(=EQc*QEF*@XKdJ{TTs&Vsq4=pMgIF{sQ>9 z8T@g@-+O=V@1qJo75K2ii@@^=|B}V0dacUOAAsMk_%DM$a(eW*_NFCNJ3ayz|K|bk zQ2YY$gu+KGzPs0=%H2SCTprj+xb3Gma(!+>y}b=QaTDX19(nuGlCJG9H#08%bPn*u z=c9NA_=LiTfsfr1<$nkG@U2n&_rN=DV;raV-d5o4Uts)X_67D*Pqj358ETkp1x#KF8uT-l=}k1AIi`*AX7qj%x@v?UGo%jc0z+ zE>8lVQ21uxV_%N)ccZX0c80$a#g7EuF%rcW0dM(g6kh?{`#({9HSlqTj{zUKBg%gf zc>Zfqe7A$x&(<|j{5arEcSiB^ftMA274Xr!qWpEhy}KEI80#KS6K>`St$$@);%Y1K zgu+`6M!PG#2Y4A5_QcLDz{eE+B=8Z1zYTmy;U74J%k5D3CxEvqd>D8_;p>5W3V#)N z83UmBf54$!?wG0+~&_8ME(2=@Wcet18&;g3>ny*?D<8fsEVFpX;?>vP%-%RV zKd}7iRo5$jZt?2tp}!&A^Qy1gz6?A1`sP~}r%ANBPHNs}GKJ#7`--vWdAG3eS_t3M z+sB)H5hWJ-Z3p~3!s%4K>emN5<6q)kwA^QZmjW-Z;(Gows%Z`E&s@g#CxdUEjxqiW zeUbUMgKwVNi7WRt2fqERc>XlP&2f$Oa=Bu22H|unUG+QG;&i=fZ}#VJ@aGJN{R79-G^|M!~QJ}JL?>L^Yqi6-gK`u&2iq!Vdp(>`E-5%Q3kdJzRQvE_3(be zZGPCujV19v*W%UpnJln)sA2Kvg${fW_DAQjBed*be>V~y7yn;#*!ivl|Cz(i3xu2c z8S=S)Xt1%r-J9dv_x%q16pQcbc}v*;yC<=orG&@%f4RfXFzmE^hwVt7ywAb^p~L=0 z2mXq~&UPP&Ki=yd_}+xa9oNwg{yd9QynT)9<=ZU06%ISsfZw{BiFBH8e-Ak9{}lWL z__WMuf3G;~@7lucKC%@30_}Ae;c@-?1P6Ww;Y}zjES5U(E^CMGi`b9bcY7Az=N$Yy zz%OGw{V)ny4}8enC_=wc;D2)1dDZek3W@EGia*|c9QdJxn|wZwaZ|?Y(=0yS8%c3} zj-Vf<9d-r@ZwmP#f8OliueCT`7g*27EA}4;p8pu*JEPpcIP6b8I{tX46CUT!i4NSn z4bz_K+$*3^2A+S6@n?Z= zb=cYCn0P;D5FS?#$6G$l$4+PaSMJCKoaV6eF~Uupj37=D@F!z&%C|inCquwj5gu3W zI`GREGJgyc&?gBu^^ka&{h@Adf3H~_8zHg7vGMlzA>7z$!Fu4mY|fkO;C~GK{B=yk zWjXI+i-!utpPwb%j4$4K?7zhAU1A6EL(>xbd&ctj@iwad^)}&g^|Qlq@$EQ`@Hl?6 z<^unmD6Y%X;n?4k4*s*24^l{Mb?~R0!1Yj8acJJ=XyY09 z5Nx%B--LJ&|9c3x`3ma{)O_}LrNyxk68}zk6V<;yZ(R-hFDQT3TYks@{(K7j$;zMS z9sIW)_%^fI|CWz)`;Nl?A%yQ)U95LJ;c@-$G;60?p%eB!oDc2}%C!zVYaRHbV&@Jv zZ~?pP{e^H7&$HF}^^PZ^U66lrDEBbJW*wc0|tKuXfn^ z0^xDxKIp(7ci8!bgI{*w6AnAuelUJqeh=X$p2zOt<9Z(R#uI>-(H}2FJuD1oU zegfywKKP%pcy&FmcHrNDonhFS3DsW#AL?O0uYsTM0`EXxT@HTYr1<(joNyCAEh>KI z6CRgW&v)1;K~I*{R!rm%q&0bUDWU9wI!h+@Cn?|IUH`-GT2( z7kc9CA4<51XRm|(l&{6ickq{5KAaATWrQa}+w$k9VLyTVCUJhN!~Pu({4odqbJ%Z! z{asM-D-OPQN_;)+>%dPWJTA@`Ir#mAoA}(K;&YX?L-zwL<9e32qudLALiMi=4*P$! zcBFPI@*M|%XF6ew^Zx*g({+5zpMMKeZNNuvXW&3~*Smo5xcC_)oM(U)U(8?sVb|Yw zs(QZZW`~`-QEq-I7q|uHe&*o+!h!$R+KKvNwqAn$p|xy(1t`;7xxG9!Pxz4FYF>Ii z;c@klvwT`-!*fP!J^Z=~rDAEIySur|OD4}~Ta;XQ`r;+Yq?h&!eov-Y@(amQf3mAD zm-UOpNavD0eYwt5Uou_F6^hB!z@XQa>(BT3B|qJK!f~^Yizg+!GuccsRVbuZCjD%w zu+r-;r2742dZ535C8>nAlEf@UsHy&o^W@(p{V2Pb?4rVx1~y9<8D1*2+B6^qFpzton?W_|KIm#xVnOIg3K7G+MMXP}=dxLAv{ zgpRh>{`q~Wo|*>ErlxZm=uH*H3nzyTxh^L^(Ak$M_Bw5(eG_!f-2>UqOg8P@U2|vJ zrrX9H;&Uwy*z zQhZfqQ(epA_c(Wi<2D!y!{vp#RJ`d>R|=)uu!(S*i!CE$BEAfhCMihbcan$kJEEgW z*dz49kDAzw*Cm%~1O)A^&a~kITp2seA-`)IsapzJh)LApGJ?a1^x7~Z+`f&FR2mGM zqQaz`MU$$7RKrv_ES+9OTG7d>&Z1#=Oz=2WCG4C8)2*C4ZEtk$ML%}#=M>=FjqKsv zAD8#T#~n9xg!fau#3p>r31$261g4r6BzZe3P|YHvhbQ? z@9OhYSvpUMAy-J`ewaYv6q>SzG=sVRxqczjy|R)E;y7pebqH;KA(V>ZOtj6Z!^sre z{X)^4;$`cYINYKLYBwzr>NJ~S)N5Lb$+J>}^UWFd;>;zXaVPHR7x;8G z-07!Erk+AemOt}2Y|)C&`$)CmIPO#L7rR=psgIz6Z8r;(~c z^N%XO)0rZ$8ZkvBHrTC**;uzCV*SR+H{@Nu;MYHdMmYKUW`q$LU;xsB2nm2x=P(*K2KNr~zsdEA?BO7iz59L<(V!^4heZGt{P$wV-F!W|F}MnPk)U z=eqV9U>X0+5K`Ax11z$|si>~8MrdSBI%-{ejSHXKtsVmFszk=ux@?TtwRzM{8sd?|c8*ZrnwcclW|1v3A*oFw z$Lf>F5~e?OjS0`Jyod6)OvEGe^uAotPj>N=3oXRw`jbVPr1+6px}^lu{4lFIQ!J#K zTj&ynoCJiY`@9~SEAUD^3JEXNOS!?^9np7scpeDfm=hj-f(3|bGrY)92+txSW=sr53hU5jYkH?`~Vy^!nc>!efBC52SBXfCvb zFIYqmldcN&XG#qai{@%f1H6lK&gwD)Od~ZB;?=5&@bomeB$W0kTyiUu-CddHJb6st zm9Oj@$oFNs%r&QA?=g{}O7?^<|EPL05w1F5q+Ogdp9m`)c+n0Rq0xoB+NGJuV+{)O z8isUL)}WF}X&qbZHK-x09MUzoA+vS4CU$C=stUmx-0HZlL5}M$HR#c9UxOIwt2KC( z_qsEM{>8Mip)dSIqi{tkQ<|SEP|`8{nssGUlVP=`I2qJoFY-$Rg=`~aI5C$Kkk`#8YMWqX%XN6<{32SU$z*#X%M8`V=H}9F-^2MY5?soTD>Eq? zIc1BhWh&};9cH*D>QKXVTZbBHu3Fqk``02?La7$35|TEEZP!lb3lztNQpPW0J~HR5 zkG9*6(H`uvHxBd-n0quZA#srADIvb>iLcT$bN>6G~q0&DaRWSDmHONK!Xpqg>s6ldDkl$=_ z?DtE(xpXl}Gt_h+bskEN7B5Nq37@?MphSMMlv`XXNS});faUL zHb{$<8mSp=FgOD1JzbW}^r!m52MwrlIEynq*-ST`orG_Os$x+H(j9)`bI2&gnPs9h z$MHrIjcFa9*-Qh_2{NoKAt-cotrn zGMmY*BWqHdnOP_;i-c}!3}(V!DxFSd{lOC5%$W8ElbyL-pIHo{scXp`6W^#90_Z-^ z9_~_nn`e>k)Aaq;*3%ZAKDRA-bo0^lfR--IUV*hG(S?>=SMn0NhD7(3;RKkEg;s6s zDTw2s$%F8DiaFk*sY34W9-GXU3ihs3?-H|%&cSJAi2kRGTr>lsn^R9;au!{~mD^US zsm)EROY9w+Rzvof8%*s@s5HA`TNHTae!rlps4`8Os8p5hZNapbD$X2Zr9o}9=(|Ld zW_h4LRq9P<2l_kdKHBbFfi_Le)QBRF+MgV`x ztiJ;H!}@8|4qN1~v^V`2b5%8&9q6MAie^_}mr66?=p}vXA1Oo|9Zn(NMV*P}bvkNo zWhYIsrJPaa+j67T6Kx@0jO!lA+9j%DrKP&)oE2TEV9!gF1~E%o>|_ul907cWlQMZx z_b|CP)ZW?b5xvjPMqM%TR971Cn)@AHvEZh3*sR%KNzSCV5;5%!j!U>(rr0f|o&J2ubSd}xxbX-Ceus;5zw zt{i!PYGtQS9f58>p#;}S_vTY}OPULzye`N77Bl9i`=nVi;Si`8u+Eoy3%M1cd{OMR zw^Nu_2?YrEB%Um=-SF)+DloW7_+BG(C`?5y**?pI40l&b#MHBL;dRd-Ix4f1@D&~F zci@~{4XAxwmA#ZVD?>4rolcs$lf7fb9JJ{SmG-myBkdowC~~1~ENZ@@S>oo6RNsIf zs!w>*~)}dcPe*jZbQVKo3{g{$8XRTPl<-;>O%yURbGsO6RN8 zgPmz4Q|aaA4p6#i5m#!ZR=7d=UPi-|4xqZPRfsm0fhxH&=nru&1q~btXIWjZXn1~q zzGRl$O~$tOt9PZkdTD}}?CGb@V5d7Y5wxAl%yMY`KiZSccwDI+d&WTB$*e6B*Dfv^ zKe>j|xh~Rg@%sJ#uKdbMQyq1zM+rLLM^CMUv#CBnF4$z_Ub&fup-K?g2nkxPDn?Xw z@}NwCL-*^O$818gDVcUUhq$WDDS1eyEyjz=AqLTCD_R_`F*{Z3xz=-?ZOGqB9fdF9 zakUhSeMvLPp$aqIcA2>XX);RC37rR5iH}NGZBujLIra1@+WtlEg#M(OI;+PXU49wd&KFt+DQ+Uux zDuaoAR7m2$OvfrVU^9|_I4=c_5D9-X+cA4=ud>raez3_zuU#59E(FsxdUA`d1eqhN zlt}SwuOnF$<>~{WDK=#sJwsq}d?vDIC$=PxVd_wx=~Vr>^Z?C+lD-L18d0<}wx`>A zGqYc#p(idX;3%)#TQJRWhUU%Ykv2BYnJ_+Z(8%`8yQ&}Co#8RGRy$ONQi?sku0+Ao zNsolt?8dH07&%5BJSfLg{+K?*<(sCHb3UF6QEf&OWMuqYVea@022guYoR0YcIGvi= z)7XhiRb$DxZcpWsbX=Sz)I>k`Efd*K!e#3PnLlZ8*o7mK8m1EWRT@&eMd4Y9J z%$tPTO=ne{ZO~P0uP{Sb_*_CJZhX>r#`5GMJnGqIl8iYiR(|RsrK(ZQD8(R$hMLUR zXrP!!C1u_bt`>6vH>h80P9i!oyXIzgEHcDgUJOizn#`WEQKG4w6!LnF4IVv$bNJX@ zTuJh*jcGnTzYBUE{gF)%L?mrl~k2tDc|!z(u;@&v9}LVdr&jl`5BL9rk8OG2N^=Tw0(}su20Fp9$B5TzDqmUu4HPph=m*5 zg>@*|Wfir!SDDDi#flx=tSuXCSXna#RZRnU^s!t!3rOW@QHG`wx8>`)A+vK(cJHX*8KgM3}fwojRUy)S+UhcHDt0n++Dq-%8 zlORnVeJl>BGBGt_$*R@!J-cWolfIyX#GP!}#7wEWYI2n98cdm`qf{T=pdT|ES2Y+) z6_vB-AP;bY>h8-?7B1$i7yS4MpTJR_&g~?e6F1KQ<$elT?x~eND(-}5*ErtFJj|Rw zVey8ib9M!GrROylSN2odCP~YCR`$wY*<8tQ?#T``cMfFw(nnHWvs)%6z2@}FENQZ& zskz-F=j-8(B<(ZTfsF$G%F~)@v-PK${%r2a(PoL(m%L{4mI5N>?80QT-;33?-ZUAJ zEmp-sj@6LAFX|$iQ8fjU73*B8Khs6tuSgqVefe&*$O(BN4wU5GB_gj-`tp70K!yvWzr}xnKcn>JJHjHr-iii< zf|M)z*C~DZUbRSigG}V7kN+mx4%!idxZ4myW8Up>i?8`BL=@{{TiIf?#|zr(}_px>&>*W4)% z{nsvH#m)!i$k@8pKfs}XZh|ZR)Dyy9Rr`8`L;s8CvHpr>we@F1U)SHBPq6+r4t+U} zHb?nWn)wB}qc;mP{`k*!=s*5AN7x9x*DL&sS~Ksis>Dv1clRJ?PP`sE*roN&wrXO_ r?cIj;$LRf_=65jt`v{RG?q&QltY`}xw&%^9&HA5gwVT0zy8QnKC_t{Z literal 0 HcmV?d00001 diff --git a/pkg/amqp-ext/AmqpContext.php b/pkg/amqp-ext/AmqpContext.php index 6d2d4e38f..dceb353ff 100644 --- a/pkg/amqp-ext/AmqpContext.php +++ b/pkg/amqp-ext/AmqpContext.php @@ -5,6 +5,7 @@ use Enqueue\AmqpTools\DelayStrategyAware; use Enqueue\AmqpTools\DelayStrategyAwareTrait; use Interop\Amqp\AmqpBind as InteropAmqpBind; +use Interop\Amqp\AmqpConsumer as InteropAmqpConsumer; use Interop\Amqp\AmqpContext as InteropAmqpContext; use Interop\Amqp\AmqpQueue as InteropAmqpQueue; use Interop\Amqp\AmqpTopic as InteropAmqpTopic; @@ -41,6 +42,11 @@ class AmqpContext implements InteropAmqpContext, DelayStrategyAware */ private $receiveMethod; + /** + * @var array + */ + private $basicConsumeSubscribers; + /** * Callable must return instance of \AMQPChannel once called. * @@ -60,6 +66,7 @@ public function __construct($extChannel, $receiveMethod) } $this->buffer = new Buffer(); + $this->basicConsumeSubscribers = []; } /** @@ -289,4 +296,121 @@ public function getExtChannel() return $this->extChannel; } + + /** + * Notify broker that the channel is interested in consuming messages from this queue. + * + * @param InteropAmqpConsumer $consumer + * @param callable $callback A callback function to which the + * consumed message will be passed. The + * function must accept at a minimum + * one parameter, an \Interop\Amqp\AmqpMessage object, + * and an optional second parameter + * the \Interop\Amqp\AmqpConsumer from which the message was + * consumed. The \Interop\Amqp\AmqpContext::basicConsume() will + * not return the processing thread back to + * the PHP script until the callback + * function returns FALSE. + */ + public function basicConsumeSubscribe(InteropAmqpConsumer $consumer, callable $callback) + { + $extQueue = new \AMQPQueue($this->getExtChannel()); + $extQueue->setName($consumer->getQueue()->getQueueName()); + + $extQueue->consume(null, Flags::convertConsumerFlags($consumer->getFlags()), $consumer->getConsumerTag()); + + $consumerTag = $extQueue->getConsumerTag(); + $consumer->setConsumerTag($consumerTag); + $this->basicConsumeSubscribers[$consumerTag] = [$consumer, $callback]; + } + + public function basicConsumeUnsubscribe(InteropAmqpConsumer $consumer) + { +// if ($consumer->getConsumerTag()) { +// $consumerTag = $consumer->getConsumerTag(); +// $consumer->setConsumerTag(null); +// +// $extQueue = new \AMQPQueue($this->getExtChannel()); +// $extQueue->setName($consumer->getQueue()->getQueueName()); +// +// $extQueue->cancel($consumerTag); +// unset($this->basicConsumeSubscribers[$consumerTag]); +// } + } + + /** + * @param float|int $timeout milliseconds, consumes endlessly if zero set + */ + public function basicConsume($timeout = 0) + { + if (empty($this->basicConsumeSubscribers)) { + throw new \LogicException('There is no subscribers. Consider calling basicConsumeSubscribe before consuming'); + } + + /** @var \AMQPQueue $extQueue */ + $extConnection = $this->getExtChannel()->getConnection(); + + $originalTimeout = $extConnection->getReadTimeout(); + try { + $extConnection->setReadTimeout($timeout / 1000); + + reset($this->basicConsumeSubscribers); + /** @var $consumer AmqpConsumer */ + list($consumer) = current($this->basicConsumeSubscribers); + + $extQueue = new \AMQPQueue($this->getExtChannel()); + $extQueue->setName($consumer->getQueue()->getQueueName()); + $extQueue->consume(function (\AMQPEnvelope $extEnvelope, \AMQPQueue $q) { + $message = $this->convertMessage($extEnvelope); + $message->setConsumerTag($q->getConsumerTag()); + + /** + * @var AmqpConsumer + * @var callable $callback + */ + list($consumer, $callback) = $this->basicConsumeSubscribers[$q->getConsumerTag()]; + + return call_user_func($callback, $message, $consumer); + }, AMQP_JUST_CONSUME); + } catch (\AMQPQueueException $e) { + if ('Consumer timeout exceed' == $e->getMessage()) { + return null; + } + + throw $e; + } finally { + $extConnection->setReadTimeout($originalTimeout); + } + } + + /** + * @param \AMQPEnvelope $extEnvelope + * + * @return AmqpMessage + */ + private function convertMessage(\AMQPEnvelope $extEnvelope) + { + $message = new AmqpMessage( + $extEnvelope->getBody(), + $extEnvelope->getHeaders(), + [ + 'message_id' => $extEnvelope->getMessageId(), + 'correlation_id' => $extEnvelope->getCorrelationId(), + 'app_id' => $extEnvelope->getAppId(), + 'type' => $extEnvelope->getType(), + 'content_encoding' => $extEnvelope->getContentEncoding(), + 'content_type' => $extEnvelope->getContentType(), + 'expiration' => $extEnvelope->getExpiration(), + 'priority' => $extEnvelope->getPriority(), + 'reply_to' => $extEnvelope->getReplyTo(), + 'timestamp' => $extEnvelope->getTimeStamp(), + 'user_id' => $extEnvelope->getUserId(), + ] + ); + $message->setRedelivered($extEnvelope->isRedelivery()); + $message->setDeliveryTag($extEnvelope->getDeliveryTag()); + $message->setRoutingKey($extEnvelope->getRoutingKey()); + + return $message; + } } diff --git a/pkg/amqp-ext/Tests/Spec/AmqpBasicConsumeBreakOnFalseTest.php b/pkg/amqp-ext/Tests/Spec/AmqpBasicConsumeBreakOnFalseTest.php new file mode 100644 index 000000000..f467f7b66 --- /dev/null +++ b/pkg/amqp-ext/Tests/Spec/AmqpBasicConsumeBreakOnFalseTest.php @@ -0,0 +1,22 @@ +createContext(); + } +} diff --git a/pkg/amqp-ext/Tests/Spec/AmqpBasicConsumeFromAllSubscribedQueuesTest.php b/pkg/amqp-ext/Tests/Spec/AmqpBasicConsumeFromAllSubscribedQueuesTest.php new file mode 100644 index 000000000..18a4265ee --- /dev/null +++ b/pkg/amqp-ext/Tests/Spec/AmqpBasicConsumeFromAllSubscribedQueuesTest.php @@ -0,0 +1,22 @@ +createContext(); + } +} diff --git a/pkg/amqp-ext/Tests/Spec/AmqpBasicConsumeShouldAddConsumerTagOnSubscribeTest.php b/pkg/amqp-ext/Tests/Spec/AmqpBasicConsumeShouldAddConsumerTagOnSubscribeTest.php new file mode 100644 index 000000000..9b2112b58 --- /dev/null +++ b/pkg/amqp-ext/Tests/Spec/AmqpBasicConsumeShouldAddConsumerTagOnSubscribeTest.php @@ -0,0 +1,22 @@ +createContext(); + } +} diff --git a/pkg/amqp-ext/Tests/Spec/AmqpBasicConsumeShouldRemoveConsumerTagOnUnsubscribeTest.php b/pkg/amqp-ext/Tests/Spec/AmqpBasicConsumeShouldRemoveConsumerTagOnUnsubscribeTest.php new file mode 100644 index 000000000..e56ffcbe4 --- /dev/null +++ b/pkg/amqp-ext/Tests/Spec/AmqpBasicConsumeShouldRemoveConsumerTagOnUnsubscribeTest.php @@ -0,0 +1,27 @@ +markTestSkipped('Seg fault.'); + } + + /** + * {@inheritdoc} + */ + protected function createContext() + { + $factory = new AmqpConnectionFactory(getenv('AMQP_DSN')); + + return $factory->createContext(); + } +} diff --git a/pkg/amqp-ext/Tests/Spec/AmqpBasicConsumeUntilUnsubscribedTest.php b/pkg/amqp-ext/Tests/Spec/AmqpBasicConsumeUntilUnsubscribedTest.php new file mode 100644 index 000000000..867b69c0f --- /dev/null +++ b/pkg/amqp-ext/Tests/Spec/AmqpBasicConsumeUntilUnsubscribedTest.php @@ -0,0 +1,27 @@ +markTestSkipped('Sig fault'); + } + + /** + * {@inheritdoc} + */ + protected function createContext() + { + $factory = new AmqpConnectionFactory(getenv('AMQP_DSN')); + + return $factory->createContext(); + } +} From c5ee3a6153c57ed6a574441bff17dfc04f691f2c Mon Sep 17 00:00:00 2001 From: Maksim Kotlyar Date: Tue, 10 Oct 2017 20:24:12 +0300 Subject: [PATCH 06/11] [amqp-ext] move basic consume methods to context. --- .../Spec/AmqpBasicConsumeBreakOnFalseTest.php | 22 +++++++++ ...asicConsumeFromAllSubscribedQueuesTest.php | 22 +++++++++ pkg/amqp-ext/AmqpConsumer.php | 46 ------------------- pkg/amqp-ext/AmqpContext.php | 26 +++++++---- 4 files changed, 60 insertions(+), 56 deletions(-) create mode 100644 pkg/amqp-bunny/Tests/Spec/AmqpBasicConsumeBreakOnFalseTest.php create mode 100644 pkg/amqp-bunny/Tests/Spec/AmqpBasicConsumeFromAllSubscribedQueuesTest.php diff --git a/pkg/amqp-bunny/Tests/Spec/AmqpBasicConsumeBreakOnFalseTest.php b/pkg/amqp-bunny/Tests/Spec/AmqpBasicConsumeBreakOnFalseTest.php new file mode 100644 index 000000000..32820ba6a --- /dev/null +++ b/pkg/amqp-bunny/Tests/Spec/AmqpBasicConsumeBreakOnFalseTest.php @@ -0,0 +1,22 @@ +createContext(); + } +} diff --git a/pkg/amqp-bunny/Tests/Spec/AmqpBasicConsumeFromAllSubscribedQueuesTest.php b/pkg/amqp-bunny/Tests/Spec/AmqpBasicConsumeFromAllSubscribedQueuesTest.php new file mode 100644 index 000000000..188118f64 --- /dev/null +++ b/pkg/amqp-bunny/Tests/Spec/AmqpBasicConsumeFromAllSubscribedQueuesTest.php @@ -0,0 +1,22 @@ +createContext(); + } +} diff --git a/pkg/amqp-ext/AmqpConsumer.php b/pkg/amqp-ext/AmqpConsumer.php index c6042b54e..4a3591d37 100644 --- a/pkg/amqp-ext/AmqpConsumer.php +++ b/pkg/amqp-ext/AmqpConsumer.php @@ -188,52 +188,6 @@ public function reject(PsrMessage $message, $requeue = false) ); } - /** - * @param float|int $timeout milliseconds, consumes endlessly if zero set - * @param callable $callback A callback function to which the - * consumed message will be passed. The - * function must accept at a minimum - * one parameter, an \Interop\Amqp\AmqpMessage object, - * and an optional second parameter - * the \Interop\Amqp\AmqpConsumer from which the message was - * consumed. The \Interop\Amqp\AmqpConsumer::consume() will - * not return the processing thread back to - * the PHP script until the callback - * function returns FALSE. - */ - public function basicConsume($timeout, callable $callback = null) - { - /** @var \AMQPQueue $extQueue */ - $extConnection = $this->getExtQueue()->getChannel()->getConnection(); - - $originalTimeout = $extConnection->getReadTimeout(); - try { - $extConnection->setReadTimeout($timeout / 1000); - - if ($callback) { - $this->getExtQueue()->consume(function (\AMQPEnvelope $extEnvelope, \AMQPQueue $q) use (&$callback) { - $message = $this->convertMessage($extEnvelope); - $message->setConsumerTag($q->getConsumerTag()); - - $queue = $this->context->createQueue($q->getName()); - $consumer = $this->context->createConsumer($queue); - - return call_user_func($callback, $message, $consumer); - }, AMQP_JUST_CONSUME); - } else { - $this->getExtQueue()->consume(null, Flags::convertConsumerFlags($this->flags), $this->consumerTag); - } - } catch (\AMQPQueueException $e) { - if ('Consumer timeout exceed' == $e->getMessage()) { - return null; - } - - throw $e; - } finally { - $extConnection->setReadTimeout($originalTimeout); - } - } - /** * @param int $timeout * diff --git a/pkg/amqp-ext/AmqpContext.php b/pkg/amqp-ext/AmqpContext.php index dceb353ff..39dd72461 100644 --- a/pkg/amqp-ext/AmqpContext.php +++ b/pkg/amqp-ext/AmqpContext.php @@ -314,6 +314,10 @@ public function getExtChannel() */ public function basicConsumeSubscribe(InteropAmqpConsumer $consumer, callable $callback) { + if ($consumer->getConsumerTag() && array_key_exists($consumer->getConsumerTag(), $this->basicConsumeSubscribers)) { + return; + } + $extQueue = new \AMQPQueue($this->getExtChannel()); $extQueue->setName($consumer->getQueue()->getQueueName()); @@ -326,16 +330,18 @@ public function basicConsumeSubscribe(InteropAmqpConsumer $consumer, callable $c public function basicConsumeUnsubscribe(InteropAmqpConsumer $consumer) { -// if ($consumer->getConsumerTag()) { -// $consumerTag = $consumer->getConsumerTag(); -// $consumer->setConsumerTag(null); -// -// $extQueue = new \AMQPQueue($this->getExtChannel()); -// $extQueue->setName($consumer->getQueue()->getQueueName()); -// -// $extQueue->cancel($consumerTag); -// unset($this->basicConsumeSubscribers[$consumerTag]); -// } + if (false == $consumer->getConsumerTag()) { + return; + } + + $consumerTag = $consumer->getConsumerTag(); + $consumer->setConsumerTag(null); + + $extQueue = new \AMQPQueue($this->getExtChannel()); + $extQueue->setName($consumer->getQueue()->getQueueName()); + + $extQueue->cancel($consumerTag); + unset($this->basicConsumeSubscribers[$consumerTag]); } /** From 8dfda8f98ffc35ea6bc06f5b6652c1067edd923a Mon Sep 17 00:00:00 2001 From: Maksim Kotlyar Date: Tue, 10 Oct 2017 20:53:48 +0300 Subject: [PATCH 07/11] [amqp-bunny] implement basic consume related methods. --- pkg/amqp-bunny/AmqpContext.php | 104 ++++++++++++++++++ ...umeShouldAddConsumerTagOnSubscribeTest.php | 22 ++++ ...ouldRemoveConsumerTagOnUnsubscribeTest.php | 22 ++++ .../AmqpBasicConsumeUntilUnsubscribedTest.php | 22 ++++ pkg/amqp-ext/AmqpContext.php | 45 ++++---- pkg/amqp-lib/AmqpContext.php | 40 +++++++ pkg/enqueue/Consumption/QueueConsumer.php | 24 ++-- 7 files changed, 241 insertions(+), 38 deletions(-) create mode 100644 pkg/amqp-bunny/Tests/Spec/AmqpBasicConsumeShouldAddConsumerTagOnSubscribeTest.php create mode 100644 pkg/amqp-bunny/Tests/Spec/AmqpBasicConsumeShouldRemoveConsumerTagOnUnsubscribeTest.php create mode 100644 pkg/amqp-bunny/Tests/Spec/AmqpBasicConsumeUntilUnsubscribedTest.php diff --git a/pkg/amqp-bunny/AmqpContext.php b/pkg/amqp-bunny/AmqpContext.php index 84508e856..b501b6529 100644 --- a/pkg/amqp-bunny/AmqpContext.php +++ b/pkg/amqp-bunny/AmqpContext.php @@ -3,9 +3,12 @@ namespace Enqueue\AmqpBunny; use Bunny\Channel; +use Bunny\Client; +use Bunny\Message; use Enqueue\AmqpTools\DelayStrategyAware; use Enqueue\AmqpTools\DelayStrategyAwareTrait; use Interop\Amqp\AmqpBind as InteropAmqpBind; +use Interop\Amqp\AmqpConsumer as InteropAmqpConsumer; use Interop\Amqp\AmqpContext as InteropAmqpContext; use Interop\Amqp\AmqpMessage as InteropAmqpMessage; use Interop\Amqp\AmqpQueue as InteropAmqpQueue; @@ -43,6 +46,13 @@ class AmqpContext implements InteropAmqpContext, DelayStrategyAware */ private $buffer; + /** + * an item contains an array: [AmqpConsumerInterop $consumer, callable $callback];. + * + * @var array + */ + private $subscribers; + /** * Callable must return instance of \Bunny\Channel once called. * @@ -309,6 +319,77 @@ public function setQos($prefetchSize, $prefetchCount, $global) $this->getBunnyChannel()->qos($prefetchSize, $prefetchCount, $global); } + /** + * {@inheritdoc} + */ + public function subscribe(InteropAmqpConsumer $consumer, callable $callback) + { + if ($consumer->getConsumerTag() && array_key_exists($consumer->getConsumerTag(), $this->subscribers)) { + return; + } + + $bunnyCallback = function (Message $message, Channel $channel, Client $bunny) { + $receivedMessage = $this->convertMessage($message); + $receivedMessage->setConsumerTag($message->consumerTag); + + /** + * @var AmqpConsumer + * @var callable $callback + */ + list($consumer, $callback) = $this->subscribers[$message->consumerTag]; + + if (false === call_user_func($callback, $receivedMessage, $consumer)) { + $bunny->stop(); + } + }; + + $frame = $this->getBunnyChannel()->consume( + $bunnyCallback, + $consumer->getQueue()->getQueueName(), + $consumer->getConsumerTag(), + (bool) ($consumer->getFlags() & InteropAmqpConsumer::FLAG_NOLOCAL), + (bool) ($consumer->getFlags() & InteropAmqpConsumer::FLAG_NOACK), + (bool) ($consumer->getFlags() & InteropAmqpConsumer::FLAG_EXCLUSIVE), + (bool) ($consumer->getFlags() & InteropAmqpConsumer::FLAG_NOWAIT) + ); + + if (empty($frame->consumerTag)) { + throw new Exception('Got empty consumer tag'); + } + + $consumer->setConsumerTag($frame->consumerTag); + + $this->subscribers[$frame->consumerTag] = [$consumer, $callback]; + } + + /** + * {@inheritdoc} + */ + public function unsubscribe(InteropAmqpConsumer $consumer) + { + if (false == $consumer->getConsumerTag()) { + return; + } + + $consumerTag = $consumer->getConsumerTag(); + + $this->getBunnyChannel()->cancel($consumerTag); + $consumer->setConsumerTag(null); + unset($this->subscribers[$consumerTag]); + } + + /** + * {@inheritdoc} + */ + public function consume($timeout = 0) + { + if (empty($this->subscribers)) { + throw new \LogicException('There is no subscribers. Consider calling basicConsumeSubscribe before consuming'); + } + + $this->getBunnyChannel()->getClient()->run($timeout / 1000); + } + /** * @return Channel */ @@ -328,4 +409,27 @@ public function getBunnyChannel() return $this->bunnyChannel; } + + /** + * @param Message $bunnyMessage + * + * @return InteropAmqpMessage + */ + private function convertMessage(Message $bunnyMessage) + { + $headers = $bunnyMessage->headers; + + $properties = []; + if (isset($headers['application_headers'])) { + $properties = $headers['application_headers']; + } + unset($headers['application_headers']); + + $message = new AmqpMessage($bunnyMessage->content, $properties, $headers); + $message->setDeliveryTag($bunnyMessage->deliveryTag); + $message->setRedelivered($bunnyMessage->redelivered); + $message->setRoutingKey($bunnyMessage->routingKey); + + return $message; + } } diff --git a/pkg/amqp-bunny/Tests/Spec/AmqpBasicConsumeShouldAddConsumerTagOnSubscribeTest.php b/pkg/amqp-bunny/Tests/Spec/AmqpBasicConsumeShouldAddConsumerTagOnSubscribeTest.php new file mode 100644 index 000000000..d2a14f3d9 --- /dev/null +++ b/pkg/amqp-bunny/Tests/Spec/AmqpBasicConsumeShouldAddConsumerTagOnSubscribeTest.php @@ -0,0 +1,22 @@ +createContext(); + } +} diff --git a/pkg/amqp-bunny/Tests/Spec/AmqpBasicConsumeShouldRemoveConsumerTagOnUnsubscribeTest.php b/pkg/amqp-bunny/Tests/Spec/AmqpBasicConsumeShouldRemoveConsumerTagOnUnsubscribeTest.php new file mode 100644 index 000000000..eb1a38b0a --- /dev/null +++ b/pkg/amqp-bunny/Tests/Spec/AmqpBasicConsumeShouldRemoveConsumerTagOnUnsubscribeTest.php @@ -0,0 +1,22 @@ +createContext(); + } +} diff --git a/pkg/amqp-bunny/Tests/Spec/AmqpBasicConsumeUntilUnsubscribedTest.php b/pkg/amqp-bunny/Tests/Spec/AmqpBasicConsumeUntilUnsubscribedTest.php new file mode 100644 index 000000000..7d9806f79 --- /dev/null +++ b/pkg/amqp-bunny/Tests/Spec/AmqpBasicConsumeUntilUnsubscribedTest.php @@ -0,0 +1,22 @@ +createContext(); + } +} diff --git a/pkg/amqp-ext/AmqpContext.php b/pkg/amqp-ext/AmqpContext.php index 39dd72461..4e13c1d61 100644 --- a/pkg/amqp-ext/AmqpContext.php +++ b/pkg/amqp-ext/AmqpContext.php @@ -43,9 +43,11 @@ class AmqpContext implements InteropAmqpContext, DelayStrategyAware private $receiveMethod; /** + * an item contains an array: [AmqpConsumerInterop $consumer, callable $callback];. + * * @var array */ - private $basicConsumeSubscribers; + private $subscribers; /** * Callable must return instance of \AMQPChannel once called. @@ -66,7 +68,7 @@ public function __construct($extChannel, $receiveMethod) } $this->buffer = new Buffer(); - $this->basicConsumeSubscribers = []; + $this->subscribers = []; } /** @@ -298,23 +300,11 @@ public function getExtChannel() } /** - * Notify broker that the channel is interested in consuming messages from this queue. - * - * @param InteropAmqpConsumer $consumer - * @param callable $callback A callback function to which the - * consumed message will be passed. The - * function must accept at a minimum - * one parameter, an \Interop\Amqp\AmqpMessage object, - * and an optional second parameter - * the \Interop\Amqp\AmqpConsumer from which the message was - * consumed. The \Interop\Amqp\AmqpContext::basicConsume() will - * not return the processing thread back to - * the PHP script until the callback - * function returns FALSE. + * {@inheritdoc} */ - public function basicConsumeSubscribe(InteropAmqpConsumer $consumer, callable $callback) + public function subscribe(InteropAmqpConsumer $consumer, callable $callback) { - if ($consumer->getConsumerTag() && array_key_exists($consumer->getConsumerTag(), $this->basicConsumeSubscribers)) { + if ($consumer->getConsumerTag() && array_key_exists($consumer->getConsumerTag(), $this->subscribers)) { return; } @@ -325,10 +315,13 @@ public function basicConsumeSubscribe(InteropAmqpConsumer $consumer, callable $c $consumerTag = $extQueue->getConsumerTag(); $consumer->setConsumerTag($consumerTag); - $this->basicConsumeSubscribers[$consumerTag] = [$consumer, $callback]; + $this->subscribers[$consumerTag] = [$consumer, $callback]; } - public function basicConsumeUnsubscribe(InteropAmqpConsumer $consumer) + /** + * {@inheritdoc} + */ + public function unsubscribe(InteropAmqpConsumer $consumer) { if (false == $consumer->getConsumerTag()) { return; @@ -341,15 +334,15 @@ public function basicConsumeUnsubscribe(InteropAmqpConsumer $consumer) $extQueue->setName($consumer->getQueue()->getQueueName()); $extQueue->cancel($consumerTag); - unset($this->basicConsumeSubscribers[$consumerTag]); + unset($this->subscribers[$consumerTag]); } /** - * @param float|int $timeout milliseconds, consumes endlessly if zero set + * {@inheritdoc} */ - public function basicConsume($timeout = 0) + public function consume($timeout = 0) { - if (empty($this->basicConsumeSubscribers)) { + if (empty($this->subscribers)) { throw new \LogicException('There is no subscribers. Consider calling basicConsumeSubscribe before consuming'); } @@ -360,9 +353,9 @@ public function basicConsume($timeout = 0) try { $extConnection->setReadTimeout($timeout / 1000); - reset($this->basicConsumeSubscribers); + reset($this->subscribers); /** @var $consumer AmqpConsumer */ - list($consumer) = current($this->basicConsumeSubscribers); + list($consumer) = current($this->subscribers); $extQueue = new \AMQPQueue($this->getExtChannel()); $extQueue->setName($consumer->getQueue()->getQueueName()); @@ -374,7 +367,7 @@ public function basicConsume($timeout = 0) * @var AmqpConsumer * @var callable $callback */ - list($consumer, $callback) = $this->basicConsumeSubscribers[$q->getConsumerTag()]; + list($consumer, $callback) = $this->subscribers[$q->getConsumerTag()]; return call_user_func($callback, $message, $consumer); }, AMQP_JUST_CONSUME); diff --git a/pkg/amqp-lib/AmqpContext.php b/pkg/amqp-lib/AmqpContext.php index 1a82bb317..bf4888b58 100644 --- a/pkg/amqp-lib/AmqpContext.php +++ b/pkg/amqp-lib/AmqpContext.php @@ -5,6 +5,7 @@ use Enqueue\AmqpTools\DelayStrategyAware; use Enqueue\AmqpTools\DelayStrategyAwareTrait; use Interop\Amqp\AmqpBind as InteropAmqpBind; +use Interop\Amqp\AmqpConsumer as InteropAmqpConsumer; use Interop\Amqp\AmqpContext as InteropAmqpContext; use Interop\Amqp\AmqpMessage as InteropAmqpMessage; use Interop\Amqp\AmqpQueue as InteropAmqpQueue; @@ -45,6 +46,13 @@ class AmqpContext implements InteropAmqpContext, DelayStrategyAware */ private $buffer; + /** + * an item contains an array: [AmqpConsumerInterop $consumer, callable $callback];. + * + * @var array + */ + private $subscribers; + /** * @param AbstractConnection $connection * @param array $config @@ -302,6 +310,38 @@ public function setQos($prefetchSize, $prefetchCount, $global) $this->getChannel()->basic_qos($prefetchSize, $prefetchCount, $global); } + /** + * {@inheritdoc} + */ + public function subscribe(InteropAmqpConsumer $consumer, callable $callback) + { + if ($consumer->getConsumerTag() && array_key_exists($consumer->getConsumerTag(), $this->subscribers)) { + return; + } + + throw new \LogicException('Not implemented'); + } + + /** + * {@inheritdoc} + */ + public function unsubscribe(InteropAmqpConsumer $consumer) + { + throw new \LogicException('Not implemented'); + } + + /** + * {@inheritdoc} + */ + public function consume($timeout = 0) + { + if (empty($this->subscribers)) { + throw new \LogicException('There is no subscribers. Consider calling basicConsumeSubscribe before consuming'); + } + + throw new \LogicException('Not implemented'); + } + /** * @return AMQPChannel */ diff --git a/pkg/enqueue/Consumption/QueueConsumer.php b/pkg/enqueue/Consumption/QueueConsumer.php index 53c74db17..fb42e363e 100644 --- a/pkg/enqueue/Consumption/QueueConsumer.php +++ b/pkg/enqueue/Consumption/QueueConsumer.php @@ -7,6 +7,7 @@ use Enqueue\Consumption\Exception\InvalidArgumentException; use Enqueue\Consumption\Exception\LogicException; use Enqueue\Util\VarExport; +use Interop\Amqp\AmqpContext; use Interop\Amqp\AmqpMessage; use Interop\Queue\PsrConsumer; use Interop\Queue\PsrContext; @@ -167,19 +168,10 @@ public function consume(ExtensionInterface $runtimeExtension = null) $logger = $context->getLogger() ?: new NullLogger(); $logger->info('Start consuming'); - $amqpConsumer = null; - foreach ($consumers as $consumer) { - if ($consumer instanceof AmqpConsumer) { - $consumer->basicConsume($this->receiveTimeout, null); - - $amqpConsumer = $consumer; - } - } - while (true) { try { - if ($amqpConsumer) { - $amqpConsumer->basicConsume($this->receiveTimeout, function (AmqpMessage $message, AmqpConsumer $consumer) use ($extension, $logger) { + if ($this->psrContext instanceof AmqpContext) { + $callback = function (AmqpMessage $message, AmqpConsumer $consumer) use ($extension, $logger) { $currentProcessor = null; /** @var PsrQueue $queue */ @@ -203,7 +195,15 @@ public function consume(ExtensionInterface $runtimeExtension = null) $this->doConsume($extension, $context); return true; - }); + }; + + foreach ($consumers as $consumer) { + /* @var AmqpConsumer $consumer */ + + $this->psrContext->subscribe($consumer, $callback); + } + + $this->psrContext->consume($this->receiveTimeout); } else { /** @var PsrQueue $queue */ foreach ($this->boundProcessors as list($queue, $processor)) { From 69634d72ec7934a60cc4bff92b9df81cfee6d9b1 Mon Sep 17 00:00:00 2001 From: Maksim Kotlyar Date: Wed, 11 Oct 2017 10:05:17 +0300 Subject: [PATCH 08/11] [amqp-lib] Add basic consume support. --- pkg/amqp-lib/AmqpContext.php | 92 ++++++++++++++++++- .../StopBasicConsumptionException.php | 7 ++ .../Spec/AmqpBasicConsumeBreakOnFalseTest.php | 22 +++++ ...asicConsumeFromAllSubscribedQueuesTest.php | 22 +++++ ...umeShouldAddConsumerTagOnSubscribeTest.php | 22 +++++ ...ouldRemoveConsumerTagOnUnsubscribeTest.php | 22 +++++ .../AmqpBasicConsumeUntilUnsubscribedTest.php | 22 +++++ pkg/enqueue/Consumption/QueueConsumer.php | 8 ++ 8 files changed, 214 insertions(+), 3 deletions(-) create mode 100644 pkg/amqp-lib/StopBasicConsumptionException.php create mode 100644 pkg/amqp-lib/Tests/Spec/AmqpBasicConsumeBreakOnFalseTest.php create mode 100644 pkg/amqp-lib/Tests/Spec/AmqpBasicConsumeFromAllSubscribedQueuesTest.php create mode 100644 pkg/amqp-lib/Tests/Spec/AmqpBasicConsumeShouldAddConsumerTagOnSubscribeTest.php create mode 100644 pkg/amqp-lib/Tests/Spec/AmqpBasicConsumeShouldRemoveConsumerTagOnUnsubscribeTest.php create mode 100644 pkg/amqp-lib/Tests/Spec/AmqpBasicConsumeUntilUnsubscribedTest.php diff --git a/pkg/amqp-lib/AmqpContext.php b/pkg/amqp-lib/AmqpContext.php index bf4888b58..5c2226c41 100644 --- a/pkg/amqp-lib/AmqpContext.php +++ b/pkg/amqp-lib/AmqpContext.php @@ -20,6 +20,8 @@ use Interop\Queue\PsrTopic; use PhpAmqpLib\Channel\AMQPChannel; use PhpAmqpLib\Connection\AbstractConnection; +use PhpAmqpLib\Exception\AMQPTimeoutException; +use PhpAmqpLib\Message\AMQPMessage as LibAMQPMessage; use PhpAmqpLib\Wire\AMQPTable; class AmqpContext implements InteropAmqpContext, DelayStrategyAware @@ -319,7 +321,38 @@ public function subscribe(InteropAmqpConsumer $consumer, callable $callback) return; } - throw new \LogicException('Not implemented'); + $libCallback = function (LibAMQPMessage $message) { + $receivedMessage = $this->convertMessage($message); + $receivedMessage->setConsumerTag($message->delivery_info['consumer_tag']); + + /** + * @var AmqpConsumer + * @var callable $callback + */ + list($consumer, $callback) = $this->subscribers[$message->delivery_info['consumer_tag']]; + + if (false === call_user_func($callback, $receivedMessage, $consumer)) { + throw new StopBasicConsumptionException(); + } + }; + + $consumerTag = $this->getChannel()->basic_consume( + $consumer->getQueue()->getQueueName(), + $consumer->getConsumerTag(), + (bool) ($consumer->getFlags() & InteropAmqpConsumer::FLAG_NOLOCAL), + (bool) ($consumer->getFlags() & InteropAmqpConsumer::FLAG_NOACK), + (bool) ($consumer->getFlags() & InteropAmqpConsumer::FLAG_EXCLUSIVE), + (bool) ($consumer->getFlags() & InteropAmqpConsumer::FLAG_NOWAIT), + $libCallback + ); + + if (empty($consumerTag)) { + throw new Exception('Got empty consumer tag'); + } + + $consumer->setConsumerTag($consumerTag); + + $this->subscribers[$consumerTag] = [$consumer, $callback]; } /** @@ -327,7 +360,16 @@ public function subscribe(InteropAmqpConsumer $consumer, callable $callback) */ public function unsubscribe(InteropAmqpConsumer $consumer) { - throw new \LogicException('Not implemented'); + if (false == $consumer->getConsumerTag()) { + return; + } + + $consumerTag = $consumer->getConsumerTag(); + + $this->getChannel()->basic_cancel($consumerTag); + + $consumer->setConsumerTag(null); + unset($this->subscribers[$consumerTag], $this->getChannel()->callbacks[$consumerTag]); } /** @@ -339,7 +381,27 @@ public function consume($timeout = 0) throw new \LogicException('There is no subscribers. Consider calling basicConsumeSubscribe before consuming'); } - throw new \LogicException('Not implemented'); + try { + while (true) { + $start = microtime(true); + + $this->channel->wait(null, false, $timeout / 1000); + + if ($timeout <= 0) { + continue; + } + + // compute remaining timeout and continue until time is up + $stop = microtime(true); + $timeout -= ($stop - $start) * 1000; + + if ($timeout <= 0) { + break; + } + } + } catch (AMQPTimeoutException $e) { + } catch (StopBasicConsumptionException $e) { + } } /** @@ -358,4 +420,28 @@ private function getChannel() return $this->channel; } + + /** + * @param LibAMQPMessage $amqpMessage + * + * @return InteropAmqpMessage + */ + private function convertMessage(LibAMQPMessage $amqpMessage) + { + $headers = new AMQPTable($amqpMessage->get_properties()); + $headers = $headers->getNativeData(); + + $properties = []; + if (isset($headers['application_headers'])) { + $properties = $headers['application_headers']; + } + unset($headers['application_headers']); + + $message = new AmqpMessage($amqpMessage->getBody(), $properties, $headers); + $message->setDeliveryTag($amqpMessage->delivery_info['delivery_tag']); + $message->setRedelivered($amqpMessage->delivery_info['redelivered']); + $message->setRoutingKey($amqpMessage->delivery_info['routing_key']); + + return $message; + } } diff --git a/pkg/amqp-lib/StopBasicConsumptionException.php b/pkg/amqp-lib/StopBasicConsumptionException.php new file mode 100644 index 000000000..14d6848e0 --- /dev/null +++ b/pkg/amqp-lib/StopBasicConsumptionException.php @@ -0,0 +1,7 @@ +createContext(); + } +} diff --git a/pkg/amqp-lib/Tests/Spec/AmqpBasicConsumeFromAllSubscribedQueuesTest.php b/pkg/amqp-lib/Tests/Spec/AmqpBasicConsumeFromAllSubscribedQueuesTest.php new file mode 100644 index 000000000..5eb07345a --- /dev/null +++ b/pkg/amqp-lib/Tests/Spec/AmqpBasicConsumeFromAllSubscribedQueuesTest.php @@ -0,0 +1,22 @@ +createContext(); + } +} diff --git a/pkg/amqp-lib/Tests/Spec/AmqpBasicConsumeShouldAddConsumerTagOnSubscribeTest.php b/pkg/amqp-lib/Tests/Spec/AmqpBasicConsumeShouldAddConsumerTagOnSubscribeTest.php new file mode 100644 index 000000000..1a5c939d0 --- /dev/null +++ b/pkg/amqp-lib/Tests/Spec/AmqpBasicConsumeShouldAddConsumerTagOnSubscribeTest.php @@ -0,0 +1,22 @@ +createContext(); + } +} diff --git a/pkg/amqp-lib/Tests/Spec/AmqpBasicConsumeShouldRemoveConsumerTagOnUnsubscribeTest.php b/pkg/amqp-lib/Tests/Spec/AmqpBasicConsumeShouldRemoveConsumerTagOnUnsubscribeTest.php new file mode 100644 index 000000000..caeac1f61 --- /dev/null +++ b/pkg/amqp-lib/Tests/Spec/AmqpBasicConsumeShouldRemoveConsumerTagOnUnsubscribeTest.php @@ -0,0 +1,22 @@ +createContext(); + } +} diff --git a/pkg/amqp-lib/Tests/Spec/AmqpBasicConsumeUntilUnsubscribedTest.php b/pkg/amqp-lib/Tests/Spec/AmqpBasicConsumeUntilUnsubscribedTest.php new file mode 100644 index 000000000..c751b2c3e --- /dev/null +++ b/pkg/amqp-lib/Tests/Spec/AmqpBasicConsumeUntilUnsubscribedTest.php @@ -0,0 +1,22 @@ +createContext(); + } +} diff --git a/pkg/enqueue/Consumption/QueueConsumer.php b/pkg/enqueue/Consumption/QueueConsumer.php index fb42e363e..fca52e203 100644 --- a/pkg/enqueue/Consumption/QueueConsumer.php +++ b/pkg/enqueue/Consumption/QueueConsumer.php @@ -221,6 +221,14 @@ public function consume(ExtensionInterface $runtimeExtension = null) } catch (ConsumptionInterruptedException $e) { $logger->info(sprintf('Consuming interrupted')); + if ($this->psrContext instanceof AmqpContext) { + foreach ($consumers as $consumer) { + /* @var AmqpConsumer $consumer */ + + $this->psrContext->unsubscribe($consumer); + } + } + $context->setExecutionInterrupted(true); $extension->onInterrupted($context); From 81460cccf9d4fec3ea4492f68330d46c9c822d50 Mon Sep 17 00:00:00 2001 From: Maksim Kotlyar Date: Wed, 11 Oct 2017 10:32:25 +0300 Subject: [PATCH 09/11] require amqp interop 0.7 ver --- composer.json | 2 +- pkg/amqp-bunny/composer.json | 2 +- pkg/amqp-ext/AmqpContext.php | 17 +++++++++-------- pkg/amqp-ext/composer.json | 2 +- pkg/amqp-lib/composer.json | 2 +- pkg/amqp-tools/composer.json | 2 +- 6 files changed, 14 insertions(+), 13 deletions(-) diff --git a/composer.json b/composer.json index acb627271..704125fda 100644 --- a/composer.json +++ b/composer.json @@ -27,7 +27,7 @@ "enqueue/test": "*@dev", "enqueue/async-event-dispatcher": "*@dev", "queue-interop/queue-interop": "^0.6@dev", - "queue-interop/amqp-interop": "^0.6@dev", + "queue-interop/amqp-interop": "^0.7@dev", "queue-interop/queue-spec": "^0.5@dev", "phpunit/phpunit": "^5", diff --git a/pkg/amqp-bunny/composer.json b/pkg/amqp-bunny/composer.json index f69f26b65..d85f2f7ac 100644 --- a/pkg/amqp-bunny/composer.json +++ b/pkg/amqp-bunny/composer.json @@ -7,7 +7,7 @@ "require": { "php": ">=5.6", - "queue-interop/amqp-interop": "^0.6@dev", + "queue-interop/amqp-interop": "^0.7@dev", "bunny/bunny": "^0.2.4", "enqueue/amqp-tools": "^0.8@dev" }, diff --git a/pkg/amqp-ext/AmqpContext.php b/pkg/amqp-ext/AmqpContext.php index 4e13c1d61..d80442822 100644 --- a/pkg/amqp-ext/AmqpContext.php +++ b/pkg/amqp-ext/AmqpContext.php @@ -327,14 +327,15 @@ public function unsubscribe(InteropAmqpConsumer $consumer) return; } - $consumerTag = $consumer->getConsumerTag(); - $consumer->setConsumerTag(null); - - $extQueue = new \AMQPQueue($this->getExtChannel()); - $extQueue->setName($consumer->getQueue()->getQueueName()); - - $extQueue->cancel($consumerTag); - unset($this->subscribers[$consumerTag]); + // seg fault +// $consumerTag = $consumer->getConsumerTag(); +// $consumer->setConsumerTag(null); +// +// $extQueue = new \AMQPQueue($this->getExtChannel()); +// $extQueue->setName($consumer->getQueue()->getQueueName()); +// +// $extQueue->cancel($consumerTag); +// unset($this->subscribers[$consumerTag]); } /** diff --git a/pkg/amqp-ext/composer.json b/pkg/amqp-ext/composer.json index 34e18a205..da7c68ae1 100644 --- a/pkg/amqp-ext/composer.json +++ b/pkg/amqp-ext/composer.json @@ -8,7 +8,7 @@ "php": ">=5.6", "ext-amqp": "^1.6", - "queue-interop/amqp-interop": "^0.6@dev", + "queue-interop/amqp-interop": "^0.7@dev", "enqueue/amqp-tools": "^0.8@dev" }, "require-dev": { diff --git a/pkg/amqp-lib/composer.json b/pkg/amqp-lib/composer.json index 60e0cac9f..7665c8f4c 100644 --- a/pkg/amqp-lib/composer.json +++ b/pkg/amqp-lib/composer.json @@ -8,7 +8,7 @@ "php": ">=5.6", "php-amqplib/php-amqplib": "^2.7@dev", "queue-interop/queue-interop": "^0.6@dev", - "queue-interop/amqp-interop": "^0.6@dev", + "queue-interop/amqp-interop": "^0.7@dev", "enqueue/amqp-tools": "^0.8@dev" }, "require-dev": { diff --git a/pkg/amqp-tools/composer.json b/pkg/amqp-tools/composer.json index f4e9077c1..f05356be9 100644 --- a/pkg/amqp-tools/composer.json +++ b/pkg/amqp-tools/composer.json @@ -7,7 +7,7 @@ "require": { "php": ">=5.6", "queue-interop/queue-interop": "^0.6@dev", - "queue-interop/amqp-interop": "^0.6@dev" + "queue-interop/amqp-interop": "^0.7@dev" }, "require-dev": { "phpunit/phpunit": "~5.4.0", From 4f7987018aaf2f8bd85b4e81df644144d35583c7 Mon Sep 17 00:00:00 2001 From: Maksim Kotlyar Date: Wed, 11 Oct 2017 10:45:39 +0300 Subject: [PATCH 10/11] require 0.5.1 spec in all amqp rel pkg. --- composer.json | 2 +- pkg/amqp-bunny/composer.json | 2 +- pkg/amqp-ext/composer.json | 2 +- pkg/amqp-lib/composer.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/composer.json b/composer.json index 704125fda..3345618b7 100644 --- a/composer.json +++ b/composer.json @@ -28,7 +28,7 @@ "enqueue/async-event-dispatcher": "*@dev", "queue-interop/queue-interop": "^0.6@dev", "queue-interop/amqp-interop": "^0.7@dev", - "queue-interop/queue-spec": "^0.5@dev", + "queue-interop/queue-spec": "^0.5.1@dev", "phpunit/phpunit": "^5", "doctrine/doctrine-bundle": "~1.2", diff --git a/pkg/amqp-bunny/composer.json b/pkg/amqp-bunny/composer.json index d85f2f7ac..0e586f68e 100644 --- a/pkg/amqp-bunny/composer.json +++ b/pkg/amqp-bunny/composer.json @@ -16,7 +16,7 @@ "enqueue/test": "^0.8@dev", "enqueue/enqueue": "^0.8@dev", "enqueue/null": "^0.8@dev", - "queue-interop/queue-spec": "^0.5@dev", + "queue-interop/queue-spec": "^0.5.1@dev", "symfony/dependency-injection": "^2.8|^3", "symfony/config": "^2.8|^3" }, diff --git a/pkg/amqp-ext/composer.json b/pkg/amqp-ext/composer.json index da7c68ae1..f39bc475c 100644 --- a/pkg/amqp-ext/composer.json +++ b/pkg/amqp-ext/composer.json @@ -16,7 +16,7 @@ "enqueue/test": "^0.8@dev", "enqueue/enqueue": "^0.8@dev", "enqueue/null": "^0.8@dev", - "queue-interop/queue-spec": "^0.5@dev", + "queue-interop/queue-spec": "^0.5.1@dev", "empi89/php-amqp-stubs": "*@dev", "symfony/dependency-injection": "^2.8|^3", "symfony/config": "^2.8|^3" diff --git a/pkg/amqp-lib/composer.json b/pkg/amqp-lib/composer.json index 7665c8f4c..bde67ffd9 100644 --- a/pkg/amqp-lib/composer.json +++ b/pkg/amqp-lib/composer.json @@ -16,7 +16,7 @@ "enqueue/test": "^0.8@dev", "enqueue/enqueue": "^0.8@dev", "enqueue/null": "^0.8@dev", - "queue-interop/queue-spec": "^0.5@dev", + "queue-interop/queue-spec": "^0.5.1@dev", "symfony/dependency-injection": "^2.8|^3", "symfony/config": "^2.8|^3" }, From dd9038b4ad85f323715bc331d5d8d622b1a88363 Mon Sep 17 00:00:00 2001 From: Maksim Kotlyar Date: Wed, 11 Oct 2017 10:51:44 +0300 Subject: [PATCH 11/11] fix phpstan issues. --- phpstan.neon | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/phpstan.neon b/phpstan.neon index 8dd052e94..ecb473cfd 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -7,4 +7,5 @@ parameters: - pkg/redis/PhpRedis.php - pkg/redis/RedisConnectionFactory.php - pkg/gearman - - pkg/amqp-ext/AmqpConsumer.php \ No newline at end of file + - pkg/amqp-ext/AmqpConsumer.php + - pkg/amqp-ext/AmqpContext.php \ No newline at end of file