apscheduler
2021-01-25 22:35:54 4 举报
AI智能生成
apscheduler源码分析
作者其他创作
大纲/内容
apscheduler
Executor
start
类似初始化
submit_job
self._instances[job.id] += 1
完成之后 - 1
MemoryJobStore
get_due_jobs
每一个job都有一个时间戳如果这个时间戳 > now就是due jobs
get_next_run_time
所有jobs里面下一个要执行的时间
add_job
update_job
更新job 下次运行时间
Job
modify
self._scheduler.modify_job
reschedule
self._scheduler.reschedule_job
pause
self._scheduler.pause_job
resume
self._scheduler.resume_job
remove
self._scheduler.remove_job
_get_run_times
BlockingScheduler
_main_loop
configure
running 才有意义
pause 才有意义
add_executorremove_executoradd_jobstoreremove_jobstoreadd_listenerremove_listener
scheduled_job
一个装饰器和add_job差不多
modify_job
直接修改job
reschedule_job
只修改trigger modify_job的快捷方式
pause_job
next_run_time=None modify_job的快捷方式
resume_job
只更新next_run_time
get_jobs
在运行
_jobstores
暂停
_pending_jobs
Scheduler
属性
_executors
_listeners
state
STATE_STOPPED
STATE_RUNNING
STATE_PAUSED
方法
_configure
self._logger = getLogger('apscheduler.scheduler')
_job_defaults
add_jobstore
self.wakeup()
self._event.set()
self.state
STATE_STOPPED
else
update job defaults / next_run_time
job_store.add_job(job)/ store.update_job(job)
self._event = Event()
while True : self._process_jobs()
遍历self._jobstores
jobstore.get_due_jobs(now)
for job in due_jobs:
run_times = job._get_run_times(now)
jobstore_next_run_time = jobstore.get_next_run_time()
jobstore_next_run_time 可能会提前 根据业务逻辑
收藏
0 条评论
回复 删除
下一页