定时任务模板的备份
包括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)