PHP language binding for IronMQ
IronMQ is an elastic message queue for managing data and event flow within cloud applications and between systems.
To start using iron_mq_php, you need to sign up and get an oauth token.
- Go to http://iron.io/ and sign up.
- Get an Oauth Token at http://hud.iron.io/tokens
There are two ways to use iron_mq_php:
Copy iron_mq.phar
to target directory and include it:
<?php
require_once "phar://iron_mq.phar";
Please note, phar extension available by default only from php 5.3.0 For php 5.2 you should install phar manually or use second option.
- Copy
IronMQ.class.php
to target directory - Grab
IronCore.class.php
there and copy to target directory - Include both of them:
<?php
require_once "IronCore.class.php"
require_once "IronMQ.class.php"
Three ways to configure IronMQ:
- Passing array with options:
<?php
$ironmq = new IronMQ(array(
'token' => 'XXXXXXXXX',
'project_id' => 'XXXXXXXXX'
));
- Passing ini file name which stores your configuration options. Rename sample_config.ini to config.ini and include your Iron.io credentials (
token
andproject_id
):
<?php
$ironmq = new IronMQ('config.ini');
-
Automatic config search - pass zero arguments to constructor and library will try to find config file in following locations:
iron.ini
in current directoryiron.json
in current directoryIRON_MQ_TOKEN
,IRON_MQ_PROJECT_ID
and other environment variablesIRON_TOKEN
,IRON_PROJECT_ID
and other environment variables.iron.ini
in user's home directory.iron.json
in user's home directory
<?php
$ironmq->postMessage("test_queue", "Hello world");
More complex example:
<?php
$ironmq->postMessage("test_queue", array(
"body" => "Test Message",
"timeout" => 120, # Timeout, in seconds. After timeout, item will be placed back on queue. Defaults to 60.
'delay' => 5, # The item will not be available on the queue until this many seconds have passed. Defaults to 0.
'expires_in' => 2*24*3600 # How long, in seconds, to keep the item on the queue before it is deleted.
));
<?php
$ironmq->getMessage("test_queue");
When you pop/get a message from the queue, it will NOT be deleted. It will eventually go back onto the queue after a timeout if you don't delete it (default timeout is 60 seconds).
<?php
$ironmq->deleteMessage("test_queue", $message_id);
Delete a message from the queue when you're done with it.
If you see Uncaught exception 'Http_Exception' with message 'http error: 0 | '
it most likely caused by misconfigured cURL https sertificates.
There are two ways to fix this error:
- Disable SSL sertificate verification - add this line after $ironmq initialization:
$ironmq->ssl_verifypeer = false;
- Switch to http protocol - add this to configuration options:
protocol = http
andport = 80
You can find more documentation here: