def process_task_detail(obj): log = logging.getLogger('task') interval_second = obj.interval * 60 process_obj = EmailTaskDetail.objects.filter(email_task_id=obj.id, status=0, update_time__lt=int( time.time())).first() process_objs = EmailTaskDetail.objects.filter(email_task_id=obj.id, status=0).all() if process_obj == None and len(process_objs) == 0: log.info( '任务执行完毕,%s' % time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))) obj.status = 2 obj.save() else: if process_obj == None: return log.info( '开始时间,%s' % time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))) account = EmailAccount.objects.filter( id=process_obj.email_account_id).first() process_obj.status = 1 process_obj.save() EmailTaskDetail.objects.filter( email_task_id=obj.id, status=0).update(update_time=int(time.time()) + interval_second) mail_handler = SendEmail() mail_handler.set_info(account.smtp, account.address, account.password) log.info('发件人%s,收件人%s,' % (account.address, process_obj.send_to)) try: mail_handler.send_email( account.address, process_obj.send_to, None, process_obj.subject, process_obj.content, eval(process_obj.atts) if process_obj.atts != '' else []) process_obj.result = 0 #process_obj.status = 1 process_obj.process_time = int(time.time()) process_obj.save() log.info('执行成功,%s' % time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))) except Exception as e: process_obj.result = 1 #process_obj.status = 1 process_obj.info = str(e) process_obj.process_time = int(time.time()) process_obj.save() log.info('执行失败,%s,信息:%s' % (time.strftime( "%Y-%m-%d %H:%M:%S", time.localtime(time.time())), str(e))) mail_handler.logout()