增加范例
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"app_name": "Paste 测试",
|
||||
|
||||
"logger_desc": "用于日志输出的配置,各服务可以有自己的配置,但要使用独立配置时,必须编写额外代码",
|
||||
"logger": {
|
||||
"default": {
|
||||
"desc": "默认日志配置,该配置小节的名称已经配置在 PASTE 框架中",
|
||||
"basic": {
|
||||
"filename": "logs/root.log",
|
||||
"format": "%(asctime)s - %(name)s - %(levelname)s - %(message)s",
|
||||
"level": 20
|
||||
},
|
||||
"filename": "logs/default.log",
|
||||
"name": "Demo",
|
||||
"max_bytes": 20971520,
|
||||
"backup_count": 40
|
||||
}
|
||||
},
|
||||
|
||||
"version": "1.0.1"
|
||||
}
|
||||
@@ -0,0 +1,96 @@
|
||||
"""
|
||||
系统服务,用于读取服务配置文件,启动或停止相关的服务。
|
||||
"""
|
||||
import asyncio
|
||||
import os
|
||||
import sys
|
||||
from typing import Optional
|
||||
|
||||
from paste.core.logging import echo_log, set_logger_config
|
||||
from paste.service.task_service import TaskService
|
||||
|
||||
logger_config_name = 'logger.default'
|
||||
"""
|
||||
配置文件中日志配置字段名称。
|
||||
"""
|
||||
|
||||
task_serv: Optional[TaskService] = None
|
||||
"""
|
||||
任务服务对象。
|
||||
"""
|
||||
|
||||
pid_file = os.path.join(os.path.curdir, 'task_service.pid')
|
||||
"""
|
||||
PID 文件路径。
|
||||
"""
|
||||
|
||||
service_name = '计划任务服务'
|
||||
"""
|
||||
服务名称。
|
||||
"""
|
||||
|
||||
|
||||
def init_task_service():
|
||||
"""
|
||||
初始化服务对象并安装具体任务。
|
||||
"""
|
||||
global task_serv
|
||||
task_serv = TaskService(service_name=service_name, pid_file=pid_file)
|
||||
|
||||
# 每隔 2 秒钟执行
|
||||
task_serv.add_task(creator=task_serv.create_delay_task, fn=renew_token, delay=2)
|
||||
|
||||
return task_serv
|
||||
|
||||
|
||||
async def renew_token():
|
||||
"""
|
||||
演示更新 Token
|
||||
"""
|
||||
echo_log(f"执行:更新 Token.")
|
||||
|
||||
_renewed = False
|
||||
for i in range(2):
|
||||
echo_log(f"后台任务开始执行-{i}...")
|
||||
await asyncio.sleep(0.5) # 模拟耗时操作
|
||||
_renewed = True
|
||||
echo_log(f"更新处理完成,{'已' if _renewed else '未'}更新.")
|
||||
|
||||
|
||||
def start_service():
|
||||
"""
|
||||
控制台服务方式启动。
|
||||
"""
|
||||
set_logger_config(logger_config_name)
|
||||
_ts = init_task_service()
|
||||
_ts.start_service(env_check=False)
|
||||
|
||||
|
||||
def start():
|
||||
"""
|
||||
驻内存服务方式启动。
|
||||
"""
|
||||
set_logger_config(logger_config_name)
|
||||
_ts = init_task_service()
|
||||
_ts.start()
|
||||
|
||||
|
||||
def stop():
|
||||
"""
|
||||
驻内存服务方式停止。
|
||||
"""
|
||||
set_logger_config(logger_config_name)
|
||||
_ts = init_task_service()
|
||||
_ts.stop()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
if len(sys.argv) > 1:
|
||||
if sys.argv[1] == "start":
|
||||
start_service()
|
||||
elif sys.argv[1] == "stop":
|
||||
stop()
|
||||
else:
|
||||
print("用法: python service/tsk_service.py start")
|
||||
else:
|
||||
start_service()
|
||||
Reference in New Issue
Block a user