Python定时任务框架Apscheduler实例-----每隔10分钟扫描FTP的文本,下载到本地,非月结期间调airflow工作流

1.安装anaconda

https://www.jianshu.com/p/d3a5ec1d9a08

2.安装虚拟环境monitor

//创建虚拟环境monitor
conda create -n monitor python=3.6
//查看已创建的虚拟环境
conda info -e

3.安装Apscheduler,FTP工具包,Requests

pip install apscheduler
pip install paramiko   //FTP
pip install requests   //API

4.打开Pycharm,新建一个Flask项目demo

Python定时任务框架Apscheduler实例-----每隔10分钟扫描FTP的文本,下载到本地,非月结期间调airflow工作流_第1张图片

5.在demo下建一个文件夹monitor,然后再创建配置文件config.txt

Python定时任务框架Apscheduler实例-----每隔10分钟扫描FTP的文本,下载到本地,非月结期间调airflow工作流_第2张图片具体代码如下:

[run]
# FTP地址
ip = 10.90.96.66
username = test
password = test

# 定时任务间隔
time_interval = 10

# 工作流API
dag_mes_szp = sdc_load_mes
call_airflow_header = {"HttpToken":"RqABd4ERqM2SDO"}
call_airflow_base_url = http://airflow/admin/rest_api/api?api=trigger_dag&dag_id={}

# 数据库配置
database_host = 10.113.121.75
database_database = test
database_username = test
database_password = test

[path]
# FTP路径和本地路径
remote_dir = /Test/MES/Inbound/
success_path = /Test/MES/Inbound/Archive
error_path = /Test/MES/Inbound/Error
local_dir = /data/server/monitor/MES/file
local_inprocess_path = /data/server/monitor/MES/inprocess
local_error_path = /data/server/monitor/MES/error

6.在monitor文件夹下创建文件SftpFileScan.py,获取FTP文件,下载本地,调airflow工作流

import paramiko
import configparser
import os
import logging
import requests
import json
import time
import datetime
from utils import database_conn

# 设置日志路径
config = configparser.ConfigParser()
config.read("/data/server/demo/monitor/config.txt")


class ScanFile(object):
    # 通过IP, 用户名,密码,超时时间初始化一个远程Linux主机
    def __init__(self, ip, username, password, timeout=3600):
        self.ip = ip
        self.username = username
        self.password = password
        self.timeout = timeout
        # transport和chanel
        self.t = ''
        self.chan = ''
        # 链接失败的重试次数
        s

你可能感兴趣的:(Python,sftp,python,httpwebrequest)