单机环境下解决wsgiserver启动apscheduler运行多次问题 发表于 2024-07-22 | 更新于: 2024-07-22 | 分类于 Python , Flask , Apscheduler | 阅读次数: | 浏览量 启动脚本中这样设置,多个worker启动apscheduler调度器的时候,去判断lock文件是否存在,存在则不启动,保证了多worker之间只启动了一个调度器。fcntl atexit 这俩包只在类unix系统中存在,如果你想在windows中运行,则不行。12345678910111213141516171819202122import fcntlimport atexitdef 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()书山有路勤为径,学海无涯苦作舟。欢迎关注微信公众号:【程序员写书】一起学习,一起进步。-------------本文结束感谢您的阅读-------------