import sys import cx_Oracle from kombu.connection import BrokerConnection from kombu.messaging import Exchange, Queue, Consumer from datetime import datetime from time import sleep exchange = Exchange("amq.topic", "topic", durable=True) q = Queue("oracle_job_inserter", exchange=exchange, key="log.job.#") q.routing_key="log.job.#" dsn = cx_Oracle.makedsn('host',1521,'workspace') def ts_literal(ts): return datetime.fromtimestamp(ts).isoformat().replace('T',' ') def process_job(msg,body): while True: try: with cx_Oracle.Connection("user/password@"+dsn) as ora_con: cursor = ora_con.cursor() print msg if not 'exit_status' in msg.keys(): body.ack() break # print dir(body) cluster = body.delivery_info["routing_key"].replace("log.job.","").upper() cursor.execute("""select queue_record_num from job_queue where QUEUE_NAME='%s' and "cluster"='%s'""" % (msg["queue"],cluster)) queue_id = cursor.fetchall() if not queue_id: cursor.execute("""insert into job_queue (QUEUE_NAME,"cluster") VALUES ('%s','%s')""" % (msg["queue"],cluster)) ora_con.commit() cursor.execute("""select queue_record_num from job_queue where QUEUE_NAME='%s' and "cluster"='%s'""" % (msg["queue"],cluster))