// Check the error queue
    $aErrorQueue = $server->getErrors();
    if (!empty($aErrorQueue)) {
        var_dump($aErrorQueue);
    }
    // get latest queue
    list($deviceToken, $badgeNum, $text) = popQueue();
    // push message if it has correct values
    if ($deviceToken && $badgeNum && $text) {
        // Instantiate a new Message with a single recipient
        $message = new ApnsPHP_Message($deviceToken);
        $message->setBadge((int) $badgeNum);
        $message->setSound();
        $message->setText(urldecode($text));
        // Add the message to the message queue
        $server->add($message);
        _pushLog(array(date('Y-m-d H:i:s'), $deviceToken, $badgeNum));
        // continue to next loop for effectiveness
        continue;
    }
    usleep(500000);
}
/*
 * Pop from queue.
 * Currently using redis
 */
function popQueue()
{
    $queueRow = $redis->lpop($QUEUE_KEY);
    return explode(':', $queueRow);
}