public function __construct($awsConfiguration, $region = null) { if (!class_exists('AmazonSQS')) { throw new \LogicException("Can't find AWS SDK"); } $this->sqs = new \AmazonSQS($awsConfiguration); if (null !== $region) { $this->sqs->set_region($region); } }
<?php require_once '/usr/share/php/AWSSDKforPHP/sdk.class.php'; define('AWS_KEY', 'AKIAIGKECZXA7AEIJLMQ'); define('AWS_SECRET_KEY', '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'); define('AWS_ACCOUNT_ID', '457964863276'); $queue_name = $_GET['queue']; $sqs = new AmazonSQS(); $sqs->set_region($sqs::REGION_EU_W1); $queue = $sqs->create_queue($queue_name); $queue->isOK() or die('could not create queue ' + $queue_name); $receive_response = $sqs->receive_message($queue->body->QueueUrl(0)); $delete_response = $sqs->delete_message($queue->body->QueueUrl(0), (string) $receive_response->body->ReceiptHandle(0)); $body = json_decode($receive_response->body->Body(0)); pr($body); function pr($var) { print '<pre>'; print_r($var); print '</pre>'; }
public static function setAsideCron() { self::echomsg(null, "Start Sudarshan Stock Sync - SetAside", true); $sqs = new AmazonSQS(); $sqs->set_region(AmazonSQS::REGION_APAC_SE1); $db = Db::getInstance(_PS_USE_SQL_SLAVE_); $updates = false; while (true) { $response = $sqs->receive_message(STOCK_SYNC_QUEUE); if (!$response->body->ReceiveMessageResult->Message) { break; } else { $updates = true; self::echomsg(null, "--------------------------------------------------", true); $message = Tools::jsonDecode($response->body->ReceiveMessageResult->Message->Body, true); $supplier_reference = $message['supplier_reference']; $sup_details = explode("::", $supplier_reference); if (count($sup_details) !== 2) { self::echomsg($message, "Action Needed - Invalid Vendor Code. Manual SetAside needed", true); } else { $design_no = $sup_details[0]; $item_code = $sup_details[1]; $id_product = $message["id_product"]; $reference = $message["reference"]; $id_order = $message["id_order"]; $quantity = (int) $message["quantity"]; $product = array(); $product['id_product'] = $id_product; $product['reference'] = $reference; $product['supplier_reference'] = $supplier_reference; $product['id_order'] = $id_order; self::echomsg($product, "Quantity #{$quantity} - Waiting for SetAside Update"); for ($i = 1; $i <= $quantity; $i++) { try { $client = self::getClient(); $data = array("Itemcode" => $item_code, "DesignNo" => $design_no, "OrderNo" => (string) $id_order, "Size" => "-"); $result = $client->SetAside($data); if ((int) $result->SetAsideResult === 1) { self::echomsg($product, "SetAside success", true); } else { self::echomsg($product, "Manual SetAside Action Needed - System SetAside Failed", true); } } catch (Exception $ex) { $ex_msg = $ex->getMessage(); if (stripos($ex_msg, "is insufficient for the requested quantity")) { self::echomsg($product, "<b>Out of Stock</b>", true); } else { self::send_tech_mail('Stock Sync Update SetAside', "Set Aside API Failed"); self::echomsg($product, "Manual SetAside Action Needed - System SetAside Failed", true); } } } } $handle = $response->body->ReceiveMessageResult->Message->ReceiptHandle; $sqs->delete_message(STOCK_SYNC_QUEUE, $handle); } } self::echomsg(null, "--------------------------------------------------", true); self::echomsg(null, "End Sudarshan Stock Sync - SetAside", true); if ($updates) { self::send_log_mail('Set Aside'); } return true; }
<?php define('_PS_ADMIN_DIR_', getcwd()); define('PS_ADMIN_DIR', _PS_ADMIN_DIR_); // Retro-compatibility include PS_ADMIN_DIR . '/../config/config.inc.php'; include PS_ADMIN_DIR . '/functions.php'; $sqs = new AmazonSQS(); $sqs->set_region(AmazonSQS::REGION_APAC_SE1); $db = Db::getInstance(_PS_USE_SQL_SLAVE_); for ($count = 1; $count < 10; $count++) { $response = $sqs->receive_message(INVITE_QUEUE); if (!$response->body->ReceiveMessageResult->Message) { sleep(5); } else { if (processMessage($response, $db)) { } $handle = $response->body->ReceiveMessageResult->Message->ReceiptHandle; $sqs->delete_message(INVITE_QUEUE, $handle); } } /** * @param unknown_type $response * @param Db $db * @return boolean */ function processMessage($response, $db) { echo $response->body->ReceiveMessageResult->Message->Body . PHP_EOL; $message = Tools::jsonDecode($response->body->ReceiveMessageResult->Message->Body, true); $id_customer = $message['id_customer'];
public static function sendSQSInviteMessage($eventID, $customerID) { $message = array('id_invite' => $eventID, 'id_customer' => $customerID); $sqs = new AmazonSQS(); $sqs->set_region(AmazonSQS::REGION_APAC_SE1); $response = $sqs->send_message(INVITE_QUEUE, self::jsonEncode($message)); if (!$response->isOK()) { $templateVars = array('event' => 'SQS send invite message', 'description' => 'Failed to send message to the queue.'); @Mail::Send(1, 'alert', Mail::l('SQS Alarm'), $templateVars, '*****@*****.**', 'Rohit Modi', '*****@*****.**', 'VioletBag Monitoring', NULL, NULL, _PS_MAIL_DIR_, false); return false; } return true; }