单机环境下解决wsgiserver启动apscheduler运行多次问题


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()

书山有路勤为径,学海无涯苦作舟。

欢迎关注微信公众号:【程序员写书】
欢迎关注微信公众号:【乐知付加密平台】

一起学习,一起进步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值