- Notifications
You must be signed in to change notification settings - Fork0
wdalmut/queue
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Adaptable queue layers
$queue =newQueue("queue name",$queueAdapter);
- AWS SQShttps://github.com/wdalmut/queue-sqs
- RabbitMQhttps://github.com/wdalmut/queue-rabbitmq
- MySQLhttps://github.com/wdalmut/queue-mysql
- Internal arrayhttps://github.com/wdalmut/queue-array
- send an issue/pr to add your adapter here...
list($receipt,$message) =$queue->receive();// receive with optionslist($receipt,$message) =$queue->receive(["timeout" =>15*60]);
$queue->send("my message");// send with options$queue->send("my message", ["delay" =>20]);
$queue->delete($receipt);// delete with options$queue->delete($receipt, ["delay" =>20]);
Just use functions
$queue =newQueue("https://sqs.amazon.com/39857/urs",$sqsAdapter);$queue->send("message",toSQS(["delay" =>20]));functiontoSQS(array options = []) {$opts = [];if (array_key_exists("delay",$options)) {$opts["DelaySeconds"] =$options["delay"]; }return$opts;}
You have to implement 3 methods fromCorley\Queue\QueueInterface
publicfunction send($queueName,$message,array$options);publicfunction receive($queueName,array$options);publicfunction delete($queueName,$receipt,array$options);
As you can see the return value
- The send operation should return the queue send operation status
- The receiveMUST return an array where the first parameter is the messagereceipt that is need for the remove operation
- The delete operation should return the queue delete operation status