Exemplo n.º 1
0
 def job_report_collection0():
     try:
         process = Process(target=globals()["report_collection"],
                           args=(Id0, tname0))
         process.start()
         process.join()
     except Exception as e:
         traceback.print_exc()
         logger = initLogger("datas/logs/" + Id0, Id0)
         logger.error("任务执行失败: " + str(e))
Exemplo n.º 2
0
 def job_green_case_mi():
     try:
         process = Process(target=globals()["green_case_mi"], args=(Id2, ))
         process.start()
         process.join()
     except SystemExit:
         pass
     except Exception as e:
         traceback.print_exc()
         logger = initLogger("datas/logs/" + Id2, Id2)
         logger.error("任务执行失败: " + str(e))
Exemplo n.º 3
0
 def __init__(self, Id, config, path, subject):
     os.makedirs("datas/logs/", exist_ok=True)
     os.makedirs("datas/tmps/", exist_ok=True)
     self.logger = initLogger("datas/logs/" + Id, Id)
     self.config = config
     self.subject = subject
     filename = os.path.basename(path)  # 文件名
     self.filein = path
     self.fileout = os.path.join("datas/tmps/" + filename)
     self.dataDir = os.path.join(
         "datas/tmps/", os.path.basename(os.path.splitext(self.fileout)[0]))
     os.makedirs(self.dataDir, exist_ok=True)
 def __init__(self, Id, tname, port):
     self.retrys = 0
     self.port = port
     self.logger = initLogger("datas/logs/" + Id, Id)
     wb = load_workbook(tname)
     # 预发送人
     preSheet = wb["预发送"]
     if not preSheet:
         self.logger.warn("无法找到预发送人表")
         self.preSend = []
     else:
         self.preSend = [
             str(cell.value) for cell in preSheet["A"]
             if str(cell.value) != "None"
         ]  # list(preSheet.columns)[0]]
     self.logger.debug("预发送人: {0}".format(self.preSend))
Exemplo n.º 5
0
def initjob():
    tname = "jobs/WBotMonitorJob/微信机器人配置文件.xlsx"  # 模版文件
    trigger, kwargs, config = getConfig(tname)  # @UnusedVariable

    # 初始日志文件
    logger = initLogger("datas/logs/" + Id, Id)
    wbmjob = WBotMonitor(logger, config, Id)  # 涉及到类全局变量,需要放在外面初始化

    @AutoReportGlobals.Scheduler.scheduled_job(trigger,
                                               id=Id,
                                               name=Subject,
                                               misfire_grace_time=86400,
                                               **kwargs)
    def job():
        try:
            wbmjob.start()
        except Exception as e:
            traceback.print_exc()
            logger.error("任务执行失败: " + str(e))
Exemplo n.º 6
0
def initjob():
    tname = "jobs/EmailMonitorJob/邮件监控配置文件.xlsx"  # 模版文件
    trigger, kwargs, config = getConfig(tname)  # @UnusedVariable

    # 初始日志文件
    logger = initLogger("datas/logs/" + Id, Id)
    emailjob = EmailMonitor(logger)  # 涉及到类全局变量,需要放在外面初始化

    # minutes -- 每1分钟监听一次
    # seconds -- 每40秒监听一次
    # @AutoReportGlobals.Scheduler.scheduled_job("interval", id=Id, name="邮件监听", minutes=1)
    # 修改为每天早上8点开始到下午19点每隔1分钟
    # @AutoReportGlobals.Scheduler.scheduled_job("cron", id=Id, name="邮件监听", minute="0-59", hour="8-19")
    @AutoReportGlobals.Scheduler.scheduled_job(trigger,
                                               id=Id,
                                               name=Subject,
                                               **kwargs)
    def job_email_monitor():
        try:
            emailjob.start()
        except Exception as e:
            traceback.print_exc()
            logger.error("任务执行失败: " + str(e))
Exemplo n.º 7
0
    def __init__(self, Id, tname):
        self.logger = initLogger("datas/logs/" + Id, Id)

        # 加载模拟头
        Headers = {
            "Accept":
            "image/gif, image/jpeg, image/pjpeg, application/x-ms-application, application/xaml+xml, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*",
            "User-Agent":
            "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; InfoPath.2)",
            "Content-Type": "application/x-www-form-urlencoded",
            "Connection": "Keep-Alive",
            "Cache-Control": "no-cache",
            "Referer": "",
            "Cookie": "",
        }
        # 加载地区指标代码
        #         Codes = json.load(open("configs/codes.txt", "r", encoding="gbk"))
        Codes = yaml.load(
            open(os.path.join(ConfigsDir, "codes.txt"), "r",
                 encoding="gbk").read())
        # 加载cookies文件
        Cookies = yaml.load(
            open(os.path.join(ConfigsDir, "cookies.txt"), "r",
                 encoding="gbk").read())
        #         Cookies = json.load(
        #             open(os.path.join(ConfigsDir, "cookies.txt"), "r", encoding="gbk"))
        # 加载referers文件
        Referers = yaml.load(
            open(os.path.join(ConfigsDir, "referers.txt"), "r",
                 encoding="gbk").read())
        #         Referers = json.load(
        #             open(os.path.join(ConfigsDir, "referers.txt"), "r", encoding="gbk"))
        # 加载网址
        Urls = yaml.load(
            open(os.path.join(ConfigsDir, "urls.txt"), "r",
                 encoding="gbk").read())
        #         Urls = json.load(
        #             open(os.path.join(ConfigsDir, "urls.txt"), "r", encoding="gbk"))
        # 加载表单
        Params = yaml.load(
            open(os.path.join(ConfigsDir, "params.txt"), "r",
                 encoding="gbk").read())
        #         Params = json.load(
        #             open(os.path.join(ConfigsDir, "params.txt"), "r", encoding="gbk"))
        # 加载配置
        Config = yaml.load(
            open(os.path.join(ConfigsDir, "config.txt"), "r",
                 encoding="gbk").read())
        #         Config = json.load(
        # open(os.path.join(ConfigsDir, "config.txt"), "r", encoding="gbk"))

        # 随机数
        RandomNum = str(datetime.now().day).zfill(2) + "090230123"

        # 第一步先获取动态的host
        self.form_bg = "http://{host}/sireports/userdefined_reports/css/ng/nresources/UI/images/form_bg.png"
        self.hosts = Urls.get("hosts", "").split(";")
        #         print("hosts: ", hosts)
        self.logger.debug("hosts: %s" % self.hosts)

        # 动态加载采集模块
        modules = Config.get("modules", {})
        #         print("modules:", modules)
        self.logger.debug("modules: %s" % modules)
        self.ModulesCollection = []
        for key, value in modules.items():
            self.logger.info("load module: %s %s" % (key, value))
            #             print("load module: ", key, value, "modules." + key)
            # __import__(key, fromlist=("modules", key))
            Class = __import__("jobs.ReportCollectionJob.modules." + key,
                               fromlist=[key])
            #             print("Class: ", Class)
            self.logger.debug("Class: %s" % Class)
            self.ModulesCollection.append(
                getattr(Class, key)(self.logger, Config.copy(), Codes,
                                    Headers.copy(), Cookies, Referers,
                                    RandomNum, Urls, Params, tname))

#         self.yxbl = YxBlCollection(logger, Config.copy(), Codes, Headers.copy(), Cookies, Referers, RandomNum, Urls, Params)
#         self.yxcz = YxCzCollection(logger, Config.copy(), Codes, Headers.copy(), Cookies, Referers, RandomNum, Urls, Params)
#         self.czmx = CzMxCollection(logger, Config.copy(), Codes, Headers.copy(), Cookies, Referers, RandomNum, Urls, Params)
#         self.cpbg = CpBgCollection(logger, Config.copy(), Codes, Headers.copy(), Cookies, Referers, RandomNum, Urls, Params)

# 多线程执行器
        self.executor = ThreadPoolExecutor(max_workers=5)
Exemplo n.º 8
0
 def __init__(self, Id):
     self.Id = Id
     self.data_queue = Queue()
     self._start_time = datetime.now()
     self.logger = initLogger("datas/logs/" + Id, Id)
Exemplo n.º 9
0
def initjob():
    Id0 = Id + "-0"
    tname0 = "jobs/Reports/FourthJob/岁末营销日报.xlsx"
    trigger0, kwargs0, config0 = getConfig(tname0)  # @UnusedVariable

    @AutoReportGlobals.Scheduler.scheduled_job(trigger0, id=Id0, name=Subject + Id0, **kwargs0)
    def job_broad_band():
        try:
            process = Process(
                target=globals()["broad_band"], args=(Id0, tname0))
            process.start()
            process.join()
        except Exception as e:
            traceback.print_exc()
            logger = initLogger("datas/logs/" + Id0, Id0)
            logger.error("任务执行失败: " + str(e))


def init():
    if not Enable:
        return
    initjob()  # 初始任务


if __name__ == "__main__":
    tname = "岁末营销日报.xlsx"
    trigger, kwargs, config = getConfig(tname)
    initLogger("../../../datas/logs/" + Id, Id)
    fdjob = FileDaily(Id, config, tname, Subject)
    fdjob.start()