def main(): dslam_ok = 0 dslam_bad = [] # Создание таблицы(если еще нет) SQL.create_data_dsl() # Запуск основного кода current_time = datetime.datetime.now() arguments = [(current_time, host) for host in Settings.hosts] with ThreadPoolExecutor(max_workers=Settings.threads) as executor: results = executor.map(run, arguments) for result in results: if result is None: continue elif result[0] == 1: dslam_ok += 1 else: dslam_bad.append(result[1]) print('Время: {}'.format(current_time.strftime('%Y-%m-%d %H:%M'))) print('Всего DSLAM: {}'.format(len(Settings.hosts))) print('Обработано: {}'.format(dslam_ok)) print('Необработанные: {}'.format(', '.join(dslam_bad))) print('---------\n') # Удаление старых записей options = { 'table_name': 'data_dsl', 'str1': 'CAST(datetime AS DATE) < DATE_ADD(CURRENT_DATE(), INTERVAL -{} DAY)'. format(Settings.days) } SQL.delete_table(**options)
def main(): # # Запуск программы # print('Время запуска: {}'.format( datetime.datetime.now().strftime('%Y-%m-%d %H:%M'))) # Загрузка списка DSLAM dslams = load_dslams() if len(dslams) == 0: print('Не найден dslams.db!') return # Обнуление таблицы SQL.create_data_profiles(drop=True) dslam_ok = 0 dslam_repeat = [] dslam_bad = [] # Создание таблицы(если еще нет) SQL.create_data_dsl() # Запуск основного кода with ThreadPoolExecutor(max_workers=Settings.threads) as executor: results = executor.map(run, dslams) for result in results: if result is None: continue elif result[0] == 1: dslam_ok += 1 else: dslam_repeat.append(result[1]) if len(dslam_repeat) > 0: print('Пауза 5 мин, и повторная обработка DSLAM:') for dslam in dslam_repeat: print(dslam[0]) print() # Задержка time.sleep(60 * 5) # Повторная обработка DSLAM with ThreadPoolExecutor(max_workers=Settings.threads) as executor: results = executor.map(run, dslam_repeat) for result in results: if result is None: continue elif result[0] == 1: dslam_ok += 1 else: dslam_bad.append(result[1][0]) # Распечатка результатов print('Время окончания: {}'.format( datetime.datetime.now().strftime('%Y-%m-%d %H:%M'))) print('Всего DSLAM: {}'.format(len(dslams))) print('Обработано: {}'.format(dslam_ok)) print('Необработанные: {}'.format(', '.join(dslam_bad))) print('---------\n')
def main(): print('Время запуска: {}'.format( datetime.datetime.now().strftime('%Y-%m-%d %H:%M'))) # Загрузка списка DSLAM dslams = load_dslams() if len(dslams) == 0: print('Не найден dslams.db!') return dslam_ok = 0 dslam_repeat = [] dslam_bad = [] # Создание таблицы(если еще нет) SQL.create_data_dsl() # Запуск основного кода #current_time = datetime.datetime.now() #arguments = [(current_time, host) for host in dslams] with ThreadPoolExecutor(max_workers=Settings.threads) as executor: results = executor.map(run, dslams) for result in results: if result is None: continue elif result[0] == 1: dslam_ok += 1 else: dslam_repeat.append(result[1]) if len(dslam_repeat) > 0: print('Пауза 5 мин, и повторная обработка DSLAM:') for dslam in dslam_repeat: print(dslam[0]) print() # Задержка time.sleep(60 * 5) # Повторная обработка DSLAM with ThreadPoolExecutor(max_workers=Settings.threads) as executor: results = executor.map(run, dslam_repeat) for result in results: if result is None: continue elif result[0] == 1: dslam_ok += 1 else: dslam_bad.append(result[1][0]) # Распечатка результатов print('Время окончания: {}'.format( datetime.datetime.now().strftime('%Y-%m-%d %H:%M'))) print('Всего DSLAM: {}'.format(len(dslams))) print('Обработано: {}'.format(dslam_ok)) print('Необработанные: {}'.format(', '.join(dslam_bad))) print('---------\n') # Удаление старых записей (раз в день в 0 часов) hour_now = datetime.datetime.now().hour #if (hour_now >= 0) and (hour_now < 2): if hour_now == 0: options = { 'table_name': 'data_dsl', 'str1': 'CAST(datetime AS DATE) <= DATE_ADD(CURRENT_DATE(), INTERVAL -{} DAY)' .format(Settings.days) } SQL.delete_table(**options)