美文网首页
数据报表-定时任务-增量增加数据

数据报表-定时任务-增量增加数据

作者: watson168 | 来源:发表于2019-03-08 11:49 被阅读0次
  • 1.定时导出数据,保存为CSV文件
    1. 将导出的csv文件定时发送
1.导出CSV文件
# - * - coding: utf-8 - * -

import pymysql
import xlwt
import sys
from datetime import datetime
import os 
import pandas as pd
import send_mail

host = "xxx"
user = "xxx"
password = ""
database = "xxx"
port = 3316

sql1 = "SELECT date_add(curdate(), interval -1 day) AS '日期',COUNT(DISTINCT user_id) AS '自然月活跃' FROM smt_statistic_login_log WHERE create_date >= '2019-03-01' AND create_date < '%s' ;" %(datetime.now().strftime("%Y-%m-%d"))
# sql1 = "SELECT date_add(curdate(), interval -2 day) AS '日期',COUNT(DISTINCT user_id) AS '自然月活跃' FROM smt_statistic_login_log WHERE create_date >= '2019-03-01' AND create_date < '2019-03-05' ;" 
# sql2 = "select current_date AS '日期';"
MYSQLDB = pymysql.connect(host=host, user=user, password=password,database=database, port=port,charset='utf8')

def export_excel():
    '''导出到excel表格中'''

    os.chdir(r"D:\运维资料\script-统计自然月数据")
    try:
        df1 = pd.read_sql(sql1,MYSQLDB)
      ## 使用df.to_csv() 方法可以保留之前的数据,增量增加数据到Excel表格中
        df1.to_csv(r"数据导出\统计自然月活跃数据.csv",index=False,mode='a',encoding='utf_8_sig',header=False)
        print("get sql1 data  success.")
        Logfile = open(r'log\export-data.log', 'a')
        Logfile.write("[" + datetime.now().strftime('%Y-%m-%d %H:%M:%S') + "]" + " INFO:" + " write sql1 data to excel success.\n")
        Logfile.close()
    except:
        print("Error: unable to fetch data or can not export data to excel.")
        Logfile = open(r'log\export-data.log', 'a')
        Logfile.write("[" + datetime.now().strftime('%Y-%m-%d %H:%M:%S') + "]" + " INFO:" + " Error: unable to fetch data or can not export data to excel.\n")
        Logfile.close()
        sys.exit(1)
    send_mail.sendmail()

if __name__ == "__main__":
    export_excel()
2.定时发送邮件[带附件]
# -*- coding: utf-8 -*-                                                                                                                                 
import sys,os
import smtplib
from email.mime.text import MIMEText
from email.header import Header
import datetime
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication 

mail_host ="xxxx"                                                                                                               
mail_user = "xxx"
mail_pass = "xxx"


def sendmail():                                                                                                                                 
    u"""发送邮件."""

    content = "大家好,这是%s日前的自然月活跃统计报表,请查收,谢谢!" %(datetime.datetime.now().strftime("%Y.%m.%d"))
    textApart = MIMEText(content)
    ExcelFile = r"统计自然月活跃数据.csv"
    ExcelApart = MIMEApplication(open(r'D:\运维资料\script-统计自然月数据\数据导出\%s' %(ExcelFile), 'rb').read())
    ExcelApart.add_header('Content-Disposition', 'attachment', filename=ExcelFile)

    os.chdir(r'D:\运维资料\script-统计自然月数据')
    to_reciver = "xx,xx"
    cc_reciver = "xx,xx"
    message = MIMEMultipart()
    message.attach(textApart)
    message.attach(ExcelApart)
    message['From'] = Header(mail_user, 'utf-8')
    message['To'] = to_reciver
    message['Cc'] = cc_reciver
    message['Subject'] = Header("统计自然月数据报表", 'utf-8') 
    receiver = to_reciver.split(',') + cc_reciver.split(',')

    try:
        smtpObj = smtplib.SMTP(mail_host,25)
        smtpObj.ehlo()
        smtpObj.login(mail_user,mail_pass)
        smtpObj.sendmail(mail_user, receiver,message.as_string())
        smtpObj.quit()
        Logfile = open(r'log\send-email.log', 'a')
        Logfile.write("[" + datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') + "]" + " INFO:" + " send email success.\n")
        Logfile.close()
        print("sendmail  success. ")
    except Exception as e:
        Logfile = open(r'log\send-email.log', 'a')
        Logfile.write("[" + datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') + "]" + " ERROR:" + " send email failed.\n")
        Logfile.close()
        sys.exit(1)

相关文章

  • 数据报表-定时任务-增量增加数据

    1.定时导出数据,保存为CSV文件 将导出的csv文件定时发送 1.导出CSV文件 2.定时发送邮件[带附件]

  • Spring Boot 2.X(十二):定时任务

    简介 定时任务是后端开发中常见的需求,主要应用场景有定期数据报表、定时消息通知、异步的后台业务逻辑处理、日志分析处...

  • JAVA接口同步第三方系统数据

    JAVA实现定时任务接口,定时按时间增量去同步第三方系统的数据,第三方接口有数据量限制(1000),请问在某次调用...

  • Spring Boot 2.x 集成 Quartz,动态管理定时

    1、quartz 依赖集成2、数据库准备3、基本配置4、新建定时任务5、定时任务的管理 (增加,删除,暂停,重启,...

  • 数据报表的设计思路

    由于工作中遇到了数据报表的设计任务,在此做一个总结,提供一种思路。 a 数据报表的设计可根据具体的任务环节进行设计...

  • 定时任务

    目录一:系统定时任务二:系统定时任务配置文件(crontab)三:增加定时任务1.crontab -e2.1.sh...

  • Linux 秒级定时任务

    秒级定时任务脚本 crontab -e 增加定时任务 此写法不能使用 sh 执行。

  • spring boot 实际应用(七) 定时任务

    定时任务采用注解的模式使用1、增加开启定时任务配置 2、编写定时任务业务 关注公众号,将获得最新文章推送

  • springboot cron定时任务配置

    前一篇文章记录springboot配置mybatis。在基础上增加cron定时任务配置。 开启定时任务 任务代码实...

  • Xgboost之增量学习

    日常处理数据过程中,我们会遇到新数据的增加这个问题,我们既想增加新数据,又想利用原先的模型,迁移学习和增量学习就应...

网友评论

      本文标题:数据报表-定时任务-增量增加数据

      本文链接:https://www.haomeiwen.com/subject/uhxrpqtx.html