/** * Config must provide the following keys: * - server: ActiveMQ server to connect to. Messages go into an in-memory * queue if the server name is "__test__". * @return: null, as the rendition is generated asynchronously. */ public static function render($source, $target, $assetFile, $config) { $bucket = $config['_bucket']; $queue = $config['queue']; $message = array('asset' => $assetFile, 'config' => $config, 'bucket' => $bucket, 'tstamp' => time()); if ($queue == '__test__') { array_push(self::$messages, $message); } else { $log = new api_log(); $log->debug("Queueing message: {$assetFile}"); $conn = new Amazon_SQS_Client($config['access_id'], $config['secret_key']); $response = $conn->sendMessage(array('QueueName' => $queue, 'MessageBody' => json_encode($message))); $result = $response->getSendMessageResult(); $log->debug("Queued message ID %s for asset file %s", $result->getMessageId(), $assetFile); } }
#!/usr/bin/env php <?php ini_set("display_errors", "stderr"); /** * Reads messages from the preflight queue and calculates preflight * renditions. * * This script which is supposed to be kept running indefinitely. */ require_once dirname(__FILE__) . '/../inc/api/init.php'; api_init::start(); require_once dirname(__FILE__) . '/../inc/Amazon/SQS/Client.php'; require_once dirname(__FILE__) . '/../inc/Amazon/SQS/Exception.php'; $AWS_access_id = '1468VYMBDWXZAGRNKM82'; $AWS_secret_key = 'sCAhD5rmhltn1qSRc8fvtgsN9SvnGfsVLwbgB7zO'; $QUEUE = 'binarypool_preflight'; $conn = new Amazon_SQS_Client($AWS_access_id, $AWS_secret_key); $res = $conn->getQueueAttributes(array('QueueName' => $QUEUE, 'AttributeName' => 'ApproximateNumberOfMessages')); $res = $res->getGetQueueAttributesResult(); $attr = $res->getAttribute(); echo $attr[0]->getValue() . "\n";