示例#1
0
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')
示例#3
0
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)