예제 #1
0
def start_member_statistics_schedule(self):
    """
    定时启动每日会员统计
    :param self:
    :return:
    """
    mail_send_to = ['*****@*****.**', '*****@*****.**', '*****@*****.**',
                    '*****@*****.**', '*****@*****.**', '*****@*****.**']
    copy_to = ['*****@*****.**']
    task_start_dt = datetime.datetime.now()
    pre_date = task_start_dt - datetime.timedelta(days=1)
    daily_code = format(pre_date, '%Y%m%d')
    logger.info('START(%s) at %s' % (self.request.id, task_start_dt))
    try:
        race_cid_list = Race.sync_distinct('cid', {'status': 1})
        for race_cid in race_cid_list:
            if race_cid == '160631F26D00F7A2DC56DAE2A0C4AF12':
                continue
            logger.info('START RACE : %s' % race_cid)
            clear_redis_cache(race_cid)
            task_one_day(race_cid, daily_code)
            logger.info('END RACE : %s' % race_cid)

        file_list = []
        for race_cid in race_cid_list:
            if race_cid == '160631F26D00F7A2DC56DAE2A0C4AF12':
                continue
            title = export_race(race_cid)
            file_list.append(os.path.join(SITE_ROOT, title))
        send_instant_mail(mail_to=mail_send_to, subject='会员信息%s' % daily_code, copy_to=copy_to,
                          content='上面的附件是截止到%s的会员导出数据,请注意查收!' % daily_code,
                          attachments=file_list)
        # 中间表B表
        generate_total(pre_date)
        excel_title_list = export_race_one_week_excel()
        logger.info(excel_title_list)
        send_instant_mail(mail_to=mail_send_to, subject='一周数据', copy_to=copy_to,
                          content='上面的附件是正在举行的四个活动截止到%s的一周数据,请各位查收!' % daily_code,
                          attachments=excel_title_list)

    except Exception:
        logger.error(str(traceback.format_exc()))

    task_end_dt = datetime.datetime.now()

    logger.info('END(%s) at %s' % (self.request.id, task_end_dt))
    logger.info('Cost Of Task: %s' % (task_end_dt - task_start_dt))
예제 #2
0
def early_warning_empty(task_name, cache_key, param, error_msg):
    """

    :param task_name:
    :param cache_key:
    :param param:
    :param error_msg:
    :return:
    """
    content = 'host=%s,[ERROR] task_name=(%s), time=(%s): cache_key=%s, param=%s\n %s' % (
        settings.SERVER_HOST, task_name, datetime2str(
            datetime.datetime.now()), cache_key, str(param), error_msg)

    send_instant_mail(
        mail_to=['*****@*****.**', '*****@*****.**'],
        subject='学习之旅报表任务失败',
        content=content)
예제 #3
0
def send_mail(self,
              mail_to: list = None,
              subject: str = '提醒',
              content: str = '',
              content_images: dict = None,
              attachments: list = None):
    status = send_instant_mail(mail_to=mail_to,
                               subject=subject,
                               content=content,
                               content_images=content_images,
                               attachments=attachments)
    logger.info('[%s] SEND MAIL: status=%s, to=%s, subject=%s' %
                (self.request.id, status, mail_to, subject))
    return status
예제 #4
0
    except Exception:
        logger.error(str(traceback.format_exc()))

    task_end_dt = datetime.datetime.now()

    logger.info('END(%s) at %s' % (self.request.id, task_end_dt))
    logger.info('Cost Of Task: %s' % (task_end_dt - task_start_dt))


def deal_history_data(race_cid):
    """
    用于生成中间表处理历史数据(截止到昨天)
    :return:
    """
    race = Race.sync_find_one({'cid': race_cid})
    daily_code_list = get_date_range(race.start_datetime)
    print(daily_code_list)
    clear_redis_cache(race_cid)
    for daily_code in daily_code_list:
        start_single_member_statistics.delay(race_cid, daily_code)


if __name__ == '__main__':
    file = os.path.join(SITE_ROOT, '2019年六安市公民科学素质大擂台_会员信息_2019-07-29.xlsx')
    print(send_instant_mail(mail_to=['*****@*****.**'], subject='附件邮件22',
                            content='这仅仅是一个测试!',
                            attachments=[file]))
    # start_member_statistics_schedule()
    # 六安 CA755167DEA9AA89650D11C10FAA5413 贵州 F742E0C7CA5F7E175844478D74484C29
    # 安徽 3040737C97F7C7669B04BC39A660065D 扬州 DF1EDC30F120AEE93351A005DC97B5C1
예제 #5
0
def start_statistics_learning_situation(self,
                                        cache_key,
                                        chart_type=None,
                                        m_city_code_list=None,
                                        gender_list=None,
                                        province_code_list=None,
                                        city_code_list=None,
                                        age_group_list=None,
                                        education_list=None,
                                        dimension=None,
                                        time_range=None,
                                        dimension_code=None):
    """
    学习效果任务LEARNING_SITUATION_STATISTICS
    :param self:
    :param cache_key:
    :param chart_type:
    :param m_city_code_list:
    :param gender_list:
    :param province_code_list:
    :param city_code_list:
    :param age_group_list:
    :param education_list:
    :param dimension:
    :param time_range:
    :param dimension_code:
    :return:
    """

    logger.info('[START] LEARNING_SITUATION_STATISTICS(%s), cache_key=%s' %
                (self.request.id, cache_key))
    try:
        save_cache_condition('start_statistics_learning_situation',
                             cache_key=cache_key,
                             chart_type=chart_type,
                             m_city_code_list=m_city_code_list,
                             gender_list=gender_list,
                             province_code_list=province_code_list,
                             city_code_list=city_code_list,
                             age_group_list=age_group_list,
                             education_list=education_list,
                             dimension=dimension,
                             time_range=time_range,
                             dimension_code=dimension_code)
        do_statistics_learning_situation(cache_key=cache_key,
                                         chart_type=chart_type,
                                         m_city_code_list=m_city_code_list,
                                         gender_list=gender_list,
                                         province_code_list=province_code_list,
                                         city_code_list=city_code_list,
                                         age_group_list=age_group_list,
                                         education_list=education_list,
                                         dimension=dimension,
                                         time_range=time_range,
                                         dimension_code=dimension_code)
    except Exception:
        logger.error('[ERROR] locals_variable: %s \n %s' %
                     (str(locals()), traceback.format_exc()))
        content = 'host=%s,[ERROR] LEARNING_SITUATION_STATISTICS(%s), time=%s,locals_variable: %s \n %s' % (
            settings.SERVER_HOST, self.request.id,
            datetime2str(datetime.datetime.now()), str(
                locals()), traceback.format_exc())

        send_instant_mail(
            mail_to=['*****@*****.**', '*****@*****.**'],
            subject='学习效果报表任务失败',
            content=content)
    logger.info('[ END ] LEARNING_SITUATION_STATISTICS(%s)' % self.request.id)