首页 > 编程语言 >Python sanic AsyncIOScheduler 的单例模式

Python sanic AsyncIOScheduler 的单例模式

时间:2023-09-28 13:44:56浏览次数:48  
标签:count 单例 Python scheduler AsyncIOScheduler import asyncio

sanic 是个异步框架。可以配置多个worker ,执行定时任务时,也会执行多遍。期望通过单例模式,确保只运行一次。

解决思路。AsyncIOScheduler函数有没有自带的单例模式,答案无。网上有没有相关做法,搜集半天,没有太好的办法。试过全局变量,协程共享变量等,均无效。试着用进程的共享变量来解决协程的冲突,有点杀鸡用牛刀。但是能杀,那就用吧。

代码如下。

from apscheduler.schedulers.asyncio import AsyncIOScheduler
from multiprocessing import Value
import asyncio

scheduler_count = Value("i",1)
lock = asyncio.Lock()

@app.after_server_start
async def setup_scheduler(app):
    async with lock:
        if scheduler_count.value > 0:
            scheduler_count.value -= 1
            scheduler = AsyncIOScheduler()
            scheduler.start()

标签:count,单例,Python,scheduler,AsyncIOScheduler,import,asyncio
From: https://www.cnblogs.com/bubifengyun/p/17735534.html

相关文章

  • 结对项目:用python实现一个自动生成小学四则运算题目的命令行程序
    这个作业属于哪个课程计科21级12班这个作业的要求在哪里结对项目这个作业的目标了解结对项目的过程团队成员信息姓名学号肖兴明3121004712徐强3121004713Github链接GithubPSPPSP2.1PersonalSoftwareProcessStages预估耗时(分钟)实......
  • 【Python | 进阶】提高你的Python技能,99个让代码更简洁、更快的秘密技巧, 确定不来看看
    ......
  • go go代码中调用python脚本
    目录gogo代码中调用python脚本写个简单的py脚本再写个go的脚本gogo代码中调用python脚本有的官方文档只提供了java和python的sdk,而我们需要用他们封装的服务,只能调用python或java的接口,接下来演示怎么调用python写个简单的py脚本importsysdefmain():args1=sys.ar......
  • 《最新出炉》系列初窥篇-Python+Playwright自动化测试-17-处理鼠标悬停
    1.简介有些测试场景或者事件,playwright根本就没有直接提供方法去操作,而且也不可能把各种测试场景都全面覆盖提供方法去操作。比如:就像鼠标悬停,一般测试场景鼠标悬停分两种常见,一种是鼠标悬停在某一个元素上方,然后会出现下拉子菜单,第二种就是在搜索输入过程,选择自动补全的字段。关......
  • pptx:Python的PPT操作库
    1.安装模块Windows用户打开命令行输入:pipinstallpython-pptxMac用户打开终端/Terminal输入:pip3installpython-pptx使用windows系统,如果出现无法安装情况,可以在cmd模式下输入网址选择国内清华镜像。pipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simplepython-pptx......
  • python解决ModuleNotFoundError No module named 'HTMLTestRunner'问题修改
    1、报错截图2、解决方法:(1)py2:从http://tungwaiyip.info/software/HTMLTestRunner.html下载HTMLTestRunner.py并将文件放到python2安装目录的Lib下,然后再次运行文件,可成功运行! (2) py3:a: 从http://tungwaiyip.info/software/HTMLTestRunner.html下载HTMLTestRunner.py......
  • python 安装 cv2 - 已解决
    <!--more-->python安装cv2-已解决建议收藏提供多种操作,一定有一种适合你的情况就这么个情况,就是装不上。本文没一句废话,仔细阅读。1.传统方式1(执行一遍,一条条试)可尝试python3-mpipinstall--upgradepippipinstallcv2pip3installopencv-python国内......
  • Python:operator模块
    methodcaller:调用参数指定的方法,实例方法和类方法都可以;04.Python冷知识:你可能不知道的三个操作符-itemgetter,attrgetter,methodcaller_哔哩哔哩_bilibilifromoperatorimportitemgetter,attrgetter,methodcallerprint("下面演示itemgetter用法:")get_index_zero=......
  • 【Python进阶-PyQt5】00搭建PyQt5环境
    1.创建独立开发虚拟环境1.1虚拟环境简介我们编写的程序,有时用到的Python库是不一样的,比如说开发桌面应用程序我们主要用到PyQt5相关的Python库、开发Web应用程序我们主要用到Django相关的Python库等等。假设我们在开发桌面应用程序的时候除了PyQt5相关的Python库外,还附加了其他......
  • Python实现自动生成四则运算题目和答案检测
    这个作业属于哪个课程软件工程这个作业要求在哪里结对项目这个作业的目标实现自动生成四则运算题目功能,以及给定题目和答案、判断答案对错的功能本项目上传至个人GitHub:yulinnn/PythonProject_FourOperations项目需求题目:实现一个自动生成小学四则运算题目的......