zoukankan      html  css  js  c++  java
  • 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)
    
    

    本文来自博客园,作者:403·Forbidden,转载请注明原文链接:https://www.cnblogs.com/lczmx/p/15705332.html

  • 相关阅读:
    Codeforces 1045C Hyperspace Highways (看题解) 圆方树
    Codeforces 316E3 线段树 + 斐波那切数列 (看题解)
    Codeforces 803G Periodic RMQ Problem 线段树
    Codeforces 420D Cup Trick 平衡树
    Codeforces 295E Yaroslav and Points 线段树
    Codeforces 196E Opening Portals MST (看题解)
    Codeforces 653F Paper task SA
    Codeforces 542A Place Your Ad Here
    python基础 异常与返回
    mongodb 删除
  • 原文地址:https://www.cnblogs.com/lczmx/p/15705332.html
Copyright © 2011-2022 走看看