title: 单机环境下解决wsgiserver启动apscheduler运行多次问题
tags: [flask, apscheduler]
categories: [Python, Flask, Apscheduler]
启动脚本中这样设置,多个worker启动apscheduler调度器的时候,去判断lock文件是否存在,存在则不启动,保证了多worker之间只启动了一个调度器。
fcntl atexit 这俩包只在类unix系统中存在,如果你想在windows中运行,则不行。
import fcntl
import atexit
def register_scheduler():
"""
注册定时任务
"""
f = open("scheduler.lock", "wb")
# noinspection PyBroadException
try:
fcntl.flock(f, fcntl.LOCK_EX | fcntl.LOCK_NB)
scheduler.start()
except:
pass
def unlock():
fcntl.flock(f, fcntl.LOCK_UN)
f.close()
atexit.register(unlock)
register_scheduler()
书山有路勤为径,学海无涯苦作舟。
欢迎关注微信公众号:【程序员写书】
欢迎关注微信公众号:【乐知付加密平台】
一起学习,一起进步。