Skip to content

Commit 2171d53

Browse files
committed
magento enqueue
1 parent fae4ee6 commit 2171d53

File tree

2 files changed

+92
-4
lines changed

2 files changed

+92
-4
lines changed

README.md

Lines changed: 86 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,81 @@
11

2+
Magento PHP Enqueue Integration
3+
===============================
4+
5+
Install
6+
-------
7+
We use magento composer installer to install this module.
8+
See more https://github.com/Cotya/magento-composer-installer
9+
10+
Example of `composer.json`:
11+
12+
```json
13+
{
14+
"name": "magento/project",
15+
"description": "Magento Project",
16+
"repositories": [
17+
{
18+
"type": "vcs",
19+
"url": "git@github.com:AydinHassan/magento-community.git"
20+
}
21+
],
22+
"require": {
23+
"magento-hackathon/magento-composer-installer": "~3.0",
24+
"aydin-hassan/magento-core-composer-installer" : "~1.0",
25+
"magento/magento" : "1.9.1.0",
26+
"enqueue/magento-enqueue": "*@dev"
27+
},
28+
"extra":{
29+
"magento-root-dir": "web/"
30+
}
31+
}
32+
```
33+
34+
Publish Message
35+
---------------
36+
37+
```php
38+
39+
Mage::helper('enqueue')->send('async-job', 'payload');
40+
41+
```
42+
43+
Message Consumer Class
44+
----------------------
45+
```php
46+
<?php
47+
48+
use Enqueue\Psr\PsrContext;
49+
use Enqueue\Psr\PsrMessage;
50+
use Enqueue\Psr\PsrProcessor;
51+
52+
class Acme_Module_Helper_Async_Job implements PsrProcessor
53+
{
54+
public function process(PsrMessage $message, PsrContext $context)
55+
{
56+
// do job
57+
// $message->getBody() -> 'payload'
58+
59+
return self::ACK; // acknowledge message
60+
// return self::REJECT; // reject message
61+
// return self::REQUEUE; // requeue message
62+
}
63+
}
64+
```
65+
66+
Bind message processor to topic
67+
-------------------------------
268

369
app/etc/local.xml
470
```xml
571
<config>
672
<default>
773
<enqueue>
874
<processors>
9-
<processor1>
10-
<topic>topic1</topic>
11-
<helper>magento-helper-name1</helper>
12-
</processor1>
75+
<async-job-processor>
76+
<topic>async-job</topic>
77+
<helper>acme/async_job</helper>
78+
</async-job-processor>
1379
<processor2>
1480
<topic>topic2</topic>
1581
<helper>magento-helper-name2</helper>
@@ -19,3 +85,19 @@ app/etc/local.xml
1985
</default>
2086
</config>
2187
```
88+
89+
Run message consumer
90+
--------------------
91+
```bash
92+
bash/> php shell/enqueue.php enqueue:consume -vvv --setup-broker
93+
```
94+
95+
More console commands
96+
---------------------
97+
```bash
98+
enqueue:consume [enq:c] A client's worker that processes messages. By default it connects to default queue. It select an appropriate message processor based on a message headers
99+
enqueue:produce [enq:p] A command to send a message to topic
100+
enqueue:queues [enq:m:q|debug:enqueue:queues] A command shows all available queues and some information about them.
101+
enqueue:setup-broker [enq:sb] Creates all required queues
102+
enqueue:topics [enq:m:t|debug:enqueue:topics] A command shows all available topics and some information about them.
103+
```

src/Enqueue/Enqueue/Helper/Data.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,9 @@ public function getClient()
8383
return $this->client;
8484
}
8585

86+
/**
87+
* @return \Enqueue\Client\SimpleClient
88+
*/
8689
public function buildRabbitMqAmqp()
8790
{
8891
$config = [
@@ -101,6 +104,9 @@ public function buildRabbitMqAmqp()
101104
);
102105
}
103106

107+
/**
108+
* @return \Enqueue\Client\Config
109+
*/
104110
public function buildConfig()
105111
{
106112
return new \Enqueue\Client\Config(

0 commit comments

Comments
 (0)