aws_secret_access_key = os.environ['AWS_SECRET_KEY'] else: #for compatible reason aws_secret_access_key = parser.get('AWS_credentials', 'aws_secret_access_key') order_queue_name = parser.get('SQS_settings', 'order_queue_name') result_queue_name = parser.get('SQS_settings', 'result_queue_name') queue_region = parser.get('SQS_settings', 'queue_region') max_cook_count = parser.get('General_config', 'max_cook_count') # # fork workers # sqs = SQSUtils(order_queue_name, queue_region, aws_access_key_id, aws_secret_access_key, logger=None) #print "should have " + str(sqs.get_count()) if sqs.get_count() > 0: thread_list = list() while sqs.get_count() > 0: if threading.active_count() < int(max_cook_count) + 1: thread = threading.Thread(target=main, args=(len(thread_list), )) thread_list.append(thread) thread.start() else: #FIXME: two threads get same task time.sleep(random.randrange(1, int(max_cook_count) + 1) * 10) sqs = SQSUtils(order_queue_name, queue_region, aws_access_key_id, aws_secret_access_key, logger=None) for thread in thread_list: thread.join() else: print "No request in Order Queue"