/** * Establish a queue connection. * * @param array $config * * @return \Faulker\RackspaceCloudQueue\Queue\RackspaceCloudQueue */ public function connect(array $config) { switch ($config['endpoint']) { case 'US': $endpoint = Rackspace::US_IDENTITY_ENDPOINT; break; case 'UK': default: $endpoint = Rackspace::UK_IDENTITY_ENDPOINT; } if ($this->connection == null) { $this->connection = new Rackspace($endpoint, array('username' => $config['username'], 'apiKey' => $config['apiKey'])); } if ($this->service === null) { $this->service = $this->connection->queuesService(Service::DEFAULT_NAME, $config['region'], $config['urlType']); } $this->service->setClientId(); return new RackspaceCloudQueue($this->service, $config['queue']); }
/** * @param $source * @param array $data * @throws \Exception */ public function save($source, $data = array()) { try { $client = new Rackspace(Rackspace::US_IDENTITY_ENDPOINT, array('username' => $this->username, 'apiKey' => $this->api_key)); $service = $client->queuesService(null, 'DFW'); $service->setClientId(); $queue = $service->getQueue($this->queue_name); $queue->createMessage(array('body' => array('source' => $source, 'form' => $data), 'ttl' => $this->ttl)); } catch (\Exception $e1) { try { $client = new Rackspace(Rackspace::US_IDENTITY_ENDPOINT, array('username' => $this->username, 'apiKey' => $this->api_key)); $service = $client->queuesService(null, 'ORD'); $service->setClientId(); $queue = $service->getQueue($this->queue_name); $queue->createMessage(array('body' => array('source' => $source, 'form' => $data), 'ttl' => $this->ttl)); } catch (\Exception $e2) { mail('*****@*****.**', 'Lead Collector - Failed Queue Connection', json_encode(array('source' => $source, 'form' => $data)), "From: support@whytespyder.com\r\n"); } } }
<?php /* * Copyright 2012-2014 Rackspace US, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ require dirname(__DIR__) . '/../vendor/autoload.php'; use OpenCloud\Rackspace; use OpenCloud\Common\Constants\Datetime; $client = new Rackspace('{authUrl}', array('username' => '{username}', 'apiKey' => '{apiKey}')); $service = $client->queuesService(null, '{region}'); // You MUST set a client ID before executing any operation. This ID must be a // valid UUID. The SDK can set a random UUID for you if you don't want to // define your own, just leave the argument empty. $service->setClientId(); // Get an existing queue $queue = $service->getQueue('{queueName}'); // Permanently delete it $queue->delete();