使用async使函数按计划运行。
async-sched的Python项目详细描述
使用async使函数按计划运行。在
示例
异步计划可以按计划运行任务。它还可以接收新任务(以有限的方式)并更改运行 在不停止服务的情况下计划。在
scheduler.py schedules/ task1.py task2.py^{pr2}$
计划目录中的任务1将自动导入。因为启动服务器将服务器设置为 使用get_server可访问属性,我们可以动态添加计划。在
# schedules/task1.pyfromasync_schedimportget_server,Scheduleimportdatetimedefprint_task1():print('Hello! I am task 1 '+str(datetime.datetime.now()))s=Schedule(seconds=30,repeat=True)# This will remove an existing 'Task 1' and schedule a new 'Task 1'server=get_server()server.add('Task 1',s,print_task1)
在Task2文件中,我们没有调度任何命令,但是我们注册了一个可以运行的回调函数 后来从客户那里。在
# schedules/task2.pyfromasync_schedimportget_server,Scheduleimportdatetimeserver=get_server()@server.register_callback# or @server.register_callback('print_task2')defprint_task2(name):print('Task 2 is running! ',name,str(datetime.datetime.now()))
现在运行调度服务器来监听远程命令并管理正在运行的计划。在
python scheduler.py
# or python -m async_sched.server.run –path “schedules” –host “127.0.0.1” –port 8000
使用客户端打印运行计划。在
python -m async_sched.client.request_schedules –host “127.0.0.1” –port 8000
重新加载/schedules/目录中的文件。在
python -m async_sched.client.update server –host “127.0.0.1” –port 8000
停止正在运行的计划。在
python -m async_sched.client.stop_schedule “Task 1” –host “127.0.0.1” –port 8000
运行已注册的回调函数。在
python -m async_sched.client run_command “print_task2” “hello” –host “127.0.0.1” –port 8000
调度已注册的命令。在
python -m async_sched.client schedule_command “print_task2” “hello” –seconds 10 –host “127.0.0.1” –port 8000
- 项目
标签: