import collections import MySQLdb import os import sys sys.path.append(os.path.join(os.path.dirname(__file__), '..')) from connector.mysql import get_ar_mysql_conection from sql import contact as contactsql print('START') OFFSET = 0 LIMIT = 500 try: arg_names = ['COMMAND', 'OFFSET', 'LIMIT'] args = dict(zip(arg_names, sys.argv)) arg_list = collections.namedtuple('arg_list', arg_names) arguments = arg_list(*(args.get(arg, None) for arg in arg_names)) if arguments.OFFSET and arguments.LIMIT: OFFSET = int(arguments.OFFSET) LIMIT = int(arguments.LIMIT) elif arguments.OFFSET and not arguments.LIMIT: LIMIT = int(arguments.OFFSET) except ValueError: print("Please provide numeric values for command line arguments.") exit() print('Fetch %s Contact Users' % LIMIT + ' with offset %s' % OFFSET) contacts = None error = 'Execute the first time without error' try: ar_db = get_ar_mysql_conection() cursor = ar_db.cursor() cursor.execute(contactsql.SELECTSQL.format(limit=LIMIT, offset=OFFSET)) contacts = cursor.fetchall() error = None except (MySQLdb.Error, MySQLdb.Warning) as e: print('Connection Failure : %s' % e) except: error = sys.exc_info()[0] print('Failure : %s' % error) exit() print('Contact Users Fetched') if contacts: for contact_users_data in contacts: try: cursor.execute(contactsql.UPDATESQL.format(contact_id=contact_users_data['contact_id'])) ar_db.commit() print('UPDATE SUCCESS FOR contact_id %s' % contact_users_data['contact_id']) except (MySQLdb.Error, MySQLdb.Warning) as e: print('UPDATE FAILED FOR contact_id %s' % contact_users_data['contact_id'] + ' error : %s' % e) continue except: error = sys.exc_info()[0] print('Failure : %s' % error) exit() ar_db.close() print('COMPLETE')