apscheduler模板

定时任务模板的备份
包括docker模板

#!/usr/bin/env python
"""
创建apscheduler任务模板
blog: https://www.cnblogs.com/lczmx/
"""
scheduler_temp = '''from apscheduler.triggers.cron import CronTrigger
from apscheduler.schedulers.blocking import BlockingScheduler

from {project_name} import main


def start_scheduler(main_function):
    """
    开始监听任务
    :param main_function: 主入口函数
    :return: 
    """
    scheduler = BlockingScheduler()
    scheduler.add_job(main_function, CronTrigger.from_crontab("1 0 * * *", timezone="Asia/Shanghai"))
    scheduler.start()


if __name__ == "__main__":
    # !!!!!! 替换 import 的 main
    start_scheduler(main)

'''
docker_compose_temp = """version: "3"

services:
  acgbuster:
    build: . # 使用myproject目录下的Dockerfile
    volumes:
      - .:/var/www/html/{project_name} # 挂载项目代码
    working_dir: /var/www/html/{project_name}
    environment:
      - DEBUG=False
    restart: always
    tty: true
    stdin_open: true

"""
docker_file_temp = """# myproject/Dockerfile
# 建立 python3.7 环境
FROM python:3.9

# 镜像作者
MAINTAINER lczmx

# 设置 python 环境变量
ENV PYTHONUNBUFFERED 1

COPY pip.conf /root/.pip/pip.conf

# 创建 myproject 文件夹
RUN mkdir -p /var/www/html/{project_name}

# 将 myproject 文件夹为工作目录
WORKDIR /var/www/html/{project_name}

# 将当前目录加入到工作目录中(. 表示当前目录)
ADD . /var/www/html/{project_name}

# 更新pip版本
RUN /usr/local/bin/python -m pip install --upgrade pip

# 利用 pip 安装依赖
RUN pip install -r requirements.txt

ENTRYPOINT ["python", "scheduler.py"]

"""
pip_conf_temp = """[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = https://pypi.tuna.tsinghua.edu.cn
"""

requirements_temp = """请执行:
pip freeze > requirements.txt
命令行中:
import pip
pip.main("freeze")
"""
project_temp = """# 请输入主要代码逻辑

def main():
    pass

"""


def write_to_file(file_name, text, name):
    with open(file_name, mode="w", encoding="utf-8") as f:
        f.write(text.format(project_name=name))
    print(f"已经创建: {file_name}")


if __name__ == "__main__":
    import os

    project_name = input("请输入项目名:\n>>>").strip()
    if not os.path.isdir(project_name):
        os.mkdir(project_name)
    # 修改主目录
    os.chdir(project_name)
    write_to_file("scheduler.py", scheduler_temp, project_name)
    write_to_file("docker-compose.yaml", docker_compose_temp, project_name)
    write_to_file("Dockerfile", docker_file_temp, project_name)
    write_to_file("pip.conf", pip_conf_temp, project_name)
    write_to_file("requirements.txt", requirements_temp, project_name)
    write_to_file(f"{project_name}.py", project_temp, project_name)

posted @ 2021-12-18 16:13  403·Forbidden  阅读(29)  评论(0编辑  收藏  举报