<?php

include __DIR__ . '/../lib/IronMQWrapper.php';
$queue_name = "test_queue_name";
include __DIR__ . '/../lib/IronWorkerWrapper.php';
$name = "sampleWorker.php";
$start = get_time();
for ($i = 1; $i <= 10; $i++) {
    queue_worker($iw, $name);
}
$worker_time = get_time() - $start;
$start = get_time();
for ($i = 1; $i <= 10; $i++) {
    post_message($ironmq, $queue_name);
}
$sent_time = get_time() - $start;
$start = get_time();
for ($i = 1; $i <= 10; $i++) {
    get_message($ironmq, $queue_name);
}
$received_time = get_time() - $start;
$details = array("worker" => $worker_time, "sent" => $sent_time, "received" => $received_time);
echo json_encode($details);
function get_time()
{
    return (double) array_sum(explode(' ', microtime()));
}
function get_message($ironmq, $queue_name)
{
    $ironmq->getMessage($queue_name);
}
<?php

include __DIR__ . '/../lib/IronWorkerWrapper.php';
$num_emails = $_REQUEST['num_emails'];
$name = "emailWorker.php";
$start = get_time();
queue_worker($iw, $name, $num_emails);
$worker_time = get_time() - $start;
$details = array("worker" => $worker_time);
echo json_encode($details);
function get_time()
{
    return (double) array_sum(explode(' ', microtime()));
}
function queue_worker($iw, $name, $num_emails)
{
    ob_start();
    $tmpdir = $_SERVER['TMP_DIR'];
    if (empty($tmpdir)) {
        $tmpdir = dirname(__FILE__);
    }
    $zipName = $tmpdir . "/{$name}.zip";
    $file = IronWorker::zipDirectory(dirname(__FILE__) . "/../workers", $zipName, true);
    $res = $iw->postCode('emailWorker.php', $zipName, $name);
    $tasks = array();
    for ($i = 1; $i <= $num_emails / 10; $i++) {
        $payload = array('num_emails' => 10);
        $task_id = $iw->postTask($name, $payload);
    }
    do {
        $details = $iw->getTaskDetails($task_id);
    echo "Task log:\n {$log}\n";
}
function get_emails($token, $project_id)
{
    //initializing iron_mq
    $ironmq = new IronMQ(array('token' => $token, 'project_id' => $project_id));
    //getting 100 messages from iron_mq
    $messages = $ironmq->getMessages('mail', 100);
    $emails = array();
    foreach ($messages as $message) {
        //adding message body to list of emails
        $emails[] = $message->body;
        //deleting message from queue
        $ironmq->deleteMessage('mail', $message->id);
    }
    return $emails;
}
$payload = getPayload();
//getting list of emails to send from iron_mq
$emails = get_emails($payload->token, $payload->project_id);
echo "List of emails";
print_r($emails);
if (!empty($emails)) {
    //split array into small arrays with max 10 elems per each
    $chunked_list = array_chunk($emails, 10);
    foreach ($chunked_list as $email) {
        //queueing worker for each array
        queue_worker($payload, $emails);
    }
}
echo "Worker is done";