-
Notifications
You must be signed in to change notification settings - Fork 0
7.Launcher
JianJun edited this page Oct 31, 2024
·
1 revision
使用 ChatRoom Launcher
启动 User
进程, 相当与 Launcher
是 User
的父进程.
Launcher
的功能为控制 User
子进程的启动, 停止, 重启, 可根据配置的时间参数或者手动输入命令控制 User
子进程的启动停止等行为.
也可以让 Room
远程控制 User
重启.
"""
文档:
Launcher 启动器, 用于启动 ChatRoom 子程序.
参数:
cmdline : str
子进程命令行
config : list
启动器配置, 参考文档
check_alive : bool (default True)
是否启用检查子进程存活功能
check_sleep_interval : int (default 3)
检查子进程存活时间间隔
check_max_retries : int (default 3)
检查子进程异常结束后重试重启次数
check_max_err_times : int (default 5)
最大检测错误次数
shell : bool (default False)
是否使用终端启动子进程, Window 默认为 False, 其余系统默认为 True
非 Windows 系统不设置为 True, Launcher 会因为找不到可执行文件而启动失败
"""
User 代码
# client.py
from ChatRoom import User
user = User(
user_name="Bar",
)
client_demo = user.package_manage.get_client("Foo", "demo")
while True:
try:
user_command = input("command:")
if user_command == "1":
client_demo.fun1()
elif user_command == "2":
client_demo.fun2("Hello!")
elif user_command == "3":
print(client_demo.fun3())
elif user_command == "4":
client_demo.fun4(1, 2)
except KeyboardInterrupt:
pass
Launcher 代码
# launcher.py
from datetime import datetime
from ChatRoom import Launcher
# 配置自动启动时间等
config = [
# 每日 8:45 进行重启
{
"cmd" : "restart",
"hour" : 8,
"minute" : 45,
"second" : 0,
},
# 每日 20:45 随机秒数 进行重启, 只有 second 可以使用 "random" 这个参数
{
"cmd" : "restart",
"hour" : 20,
"minute" : 45,
"second" : "random",
},
# 在 datetime(2023, 2, 27, 12, 5) 停止
{
"cmd" : "stop",
"date" : datetime(2023, 2, 27, 12, 5),
},
]
lancher = Launcher(
cmdline = "python test_tmp.py",
config = config,
)
lancher.run()
使用 Python launcher.py
就可以启动 Launcher
进程, Launcher 进程会根据设置的命令行参数 "python test_tmp.py"
启动 User 子进程.
Launcher 的标准输入默认输入到 User子进程中, 所以可以使用键盘键入 1
, 2
, 3
, 4
根据 client.py 的设计控制子进程的行为.
参考上面例子 Launcher
对象接收一个 config
参数配置子进程的启动, 停止, 重启, 其中 cmd
参数可以为:
- start: 启动
- stop: 停止
- restart: 重启
可以像上面的代码那样输入多个配置, 如果配置了 "random"
参数的时候, 每个配置的时间最好间隔两分钟以上, 防止因为 "random"
随机导致的子进程重复启动等错误!
输入 lhelp
或者 lh
可以查看 Launcher
的系统命令帮助说明
lquit
停止 User 子进程和 Launcher 主进程并结束程序
lconfig(lc)
查看 Launcher 的 config 配置信息
lstart
启动 User 子程序
lstop
停止 User 子程序
lrestart
重启 User 子程序
lhelp(lh)
显示 Launcher 帮助