From 29d1fb1ea822e2ed8376e9b76c2cdbc3bd69d4f6 Mon Sep 17 00:00:00 2001 From: Richard Chien Date: Sat, 3 Dec 2016 21:21:13 +0800 Subject: [PATCH] Add intro of a new type of command --- Write_Command.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Write_Command.md b/Write_Command.md index 162518f5..60113b8a 100644 --- a/Write_Command.md +++ b/Write_Command.md @@ -91,3 +91,9 @@ Source 表示命令的来源(由谁发出),Target 表示命令将对谁产 除了获取会话对象,还需要在命令中自己实现一个状态机,根据会话对象中保存的状态来判断当前这个 Source 处在交互式命令的哪一个阶段。 总体来说交互式命令相比普通命令写起来更复杂一点,具体写法可以参考 `commands/note.py`。 + +## 计划任务型命令 + +高级用户可以使用 `commands/scheduler.py` 里的命令来添加计划任务以定期执行某一个或一连串命令,但对普通用户来说可能较难使用,因此对于可能有需要定期执行的命令,可以编写相应的订阅命令来方便用户使用。 + +命令编写者只需要在后台帮用户把要执行的任务翻译成 `commands/scheduler.py` 能够处理的形式,并直接调用其中的函数即可,该文件中的命令一般接受一个 `internal` 参数来表示是否是命令间的内部调用,在调用时,指定该参数为 True 将不会对用户发送消息,并且在执行结束后会返回相应的返回值以便调用者知道命令执行是否成功等,具体可参见 `commands/scheduler.py` 的代码。