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))
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)
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
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
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)