def consume(args): # Get the service resources queue_service = QueueService( account_name=os.environ.get('QUEUE_STORAGE_ACCOUNT'), account_key=os.environ.get('QUEUE_STORAGE_ACCESS_KEY')) queue_service.decode_function = QueueMessageFormat.binary_base64decode logger.debug('Listening for messages on {}'.format(args.azure_queue)) while True: messages = queue_service.get_messages( args.azure_queue, num_messages=16, visibility_timeout=args.wait_time) for message in messages: try: process(args, message) except AzureException as e: logger.exception(e) if not args.dry_run: logger.debug('deleting message {}'.format(message.id)) queue_service.delete_message(args.azure_queue, message.id, message.pop_receipt) time.sleep(args.wait_time)
def writeToAzureQueue(outputList): # send the output to the queue logging.info("outputqueueLength = %s" % (str(len(outputList)))) connect_str = os.getenv("AzureWebJobsStorage") queue_name = os.getenv("glossaryOutPutQueue") queue_service = QueueService(connection_string=connect_str) queue_service.encode_function = QueueMessageFormat.binary_base64encode queue_service.decode_function = QueueMessageFormat.binary_base64decode queue_service.put_message(queue_name, json.dumps(outputList).encode('utf-8'))
def create_queue_service(account_name, account_key): queue_service = None try: queue_service = QueueService(account_name=account_name, account_key=account_key) queue_service.encode_function = QueueMessageFormat.binary_base64encode queue_service.decode_function = QueueMessageFormat.binary_base64decode except Exception as e: logging.error("Could not instantiate queue service: %s" % e) return queue_service
from scipy.misc import imsave import time from matplotlib import pyplot as plt import os from azure.storage.blob import BlockBlobService from azure.storage.queue import QueueService, QueueMessageFormat storage_account = 'imprinter' storage_key = 'qELnM/SC2Sx90GcLebvUCruxz/ibFlUpa4JP9pQSdXxURJPIeHHQfIBULswkO9XToZe4wH61OqhlLyen6+wSgA==' block_blob_service = BlockBlobService(account_name=storage_account, account_key=storage_key) queue_name = 'imprintrequests' queue_service = QueueService(account_name=storage_account, account_key=storage_key) queue_service.decode_function = QueueMessageFormat.binary_base64decode def saveToBlob(file_name, file_path): container_imprinted_name = 'imprinted' block_blob_service = BlockBlobService(account_name=storage_account, account_key=storage_key) block_blob_service.create_blob_from_path(container_imprinted_name, file_name, file_path) def getImageUrlFromQueue(): messages = queue_service.get_messages(queue_name) if messages is not None and len(messages) != 0:
import configparser config = configparser.RawConfigParser() config.read('storage.conf') accName = config.get('storage_account', 'accName') accKey = config.get('storage_account', 'accKey') queueName = config.get('storage_account', 'queueName') # sudo pip install blessings from azure.storage.queue import QueueService, QueueMessageFormat from blessings import Terminal import sys import time queue_service = QueueService(account_name=accName, account_key=accKey) queue_service.decode_function = QueueMessageFormat.text_base64decode t = Terminal() print(t.green('Connected to Azure Storage Queue ' + queueName + '...')) # Get approximate number of messages in queue queue_metadata = queue_service.get_queue_metadata(queueName) count = queue_metadata.approximate_message_count print('Approximate number of messages in queue: ', count, '\n') while True: messages = queue_service.get_messages(queueName) if messages: # Get the next message for message in messages: print(t.bold_yellow(message.content)) queue_service.delete_message(queueName, message.id, message.pop_receipt)