cog / stupidmqbundle
stupid message queue bundle for sf2
Installs: 11 810
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 3
Open Issues: 2
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
Bundle to support stupidMessageQueue into Symfony application.
Installation
Add requirement into you composer.json
:
"cog/stupidmqbundle":"2.4.*"
Then enable the bundle into app/AppKernel.php
:
new CoG\StupidMQBundle\CoGStupidMQBundle()
Optionnaly, if you are using Doctrine Orm, you can use it to easily install message queue table :
php app/console doctrine:schema:update --force
This command will create for you a new table cog_stupidmq
to store your messages.
Creating a message queue
Edit your services.xml
to add your own queues :
<!-- 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>
Adding message into the queue
$queue = $this->getContainer()->get('my.queue'); $queue->publish('This is a message !');
Adding a worker
To consume messages, you have to create a worker class like this :
<?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'; } }
Then you should register your worker, edit your services.xml
:
<!-- Message Worker -->
<service id="my.worker" class="My\Bundle\Worker\MyWorker">
<tag name="cog_stupidmq.worker"/>
</service>
Running command
StupidMQBundle is coming with useful command to process messages :
$ php app/console cog:stupidmq:watch -m1
These command will watch your queue until a message have to be processed, then it will run a subprocess in order to treat it.
Command help :
$ php app/console cog:stupidmq:watch --help