cog / stupidmqbundle
此包已废弃,不再维护。未建议替代包。
sf2的stupid消息队列包
2.4.7
2014-08-08 13:52 UTC
Requires
- php: >=5.3.3
- cog/stupidmq: >=1.0.1
- friendsofsymfony/jsrouting-bundle: 1.*
- jms/serializer: >=0.11.0
- symfony/console: 2.*
- symfony/framework-bundle: 2.*
- symfony/process: 2.*
Requires (Dev)
- doctrine/orm: >=2.2.3,<2.4-dev
- phpunit/phpunit: 3.7.*
Suggests
- doctrine/orm: Doctrine integration of bundle using Mysql Adapter to store messages
README
支持将stupidMessageQueue集成到Symfony应用程序的包。
安装
将需求添加到你的 composer.json
文件中
"cog/stupidmqbundle":"2.4.*"
然后在 app/AppKernel.php
中启用此包
new CoG\StupidMQBundle\CoGStupidMQBundle()
可选的,如果你使用Doctrine Orm,你可以用它轻松安装消息队列表
php app/console doctrine:schema:update --force
此命令将为您创建一个新的表 cog_stupidmq
用于存储您的消息。
创建消息队列
编辑你的 services.xml
以添加你自己的队列
<!-- Messages Queues -->
<service id="my.queue" class="%cog_stupidmq.queue.class%">
<argument type="service" id="cog_stupidmq.channel" />
<argument>my.queue</argument>
<tag name="cog_stupidmq.queue"/>
</service>
将消息添加到队列中
$queue = $this->getContainer()->get('my.queue'); $queue->publish('This is a message !');
添加工作进程
要消费消息,你必须创建一个工作进程类,如下所示
<?php namespace My\Bundle\Worker; use CoG\StupidMQBundle\Worker\WorkerInterface; class MyWorker implements WorkerInterface { public function execute( $message ) { var_dump($message); /* you ca give a feedback using \CoG\StupidMQBundle\Feeback\Feedback */ return Feedback::create( MessageInterface::STATE_DONE, 'here is my feedback' ); /* or just return a boolean */ return true; } public function getSubscribedQueues() { return array( 'my.queue' ); } public function getName() { return 'my.worker'; } }
然后你应该注册你的工作进程,编辑你的 services.xml
<!-- Message Worker -->
<service id="my.worker" class="My\Bundle\Worker\MyWorker">
<tag name="cog_stupidmq.worker"/>
</service>
运行命令
StupidMQBundle附带了处理消息的有用命令
$ php app/console cog:stupidmq:watch -m1
这些命令将监视你的队列,直到有消息需要处理,然后它会运行一个子进程来处理它。
命令帮助
$ php app/console cog:stupidmq:watch --help