国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python使用signal定時結束AsyncIOScheduler任務的問題

Python使用signal定時結束AsyncIOScheduler任務的問題

2021-12-15 10:32臨淵(v:superz-han) Python

這篇文章主要介紹了Python使用signal定時結束AsyncIOScheduler任務,在使用aiohttp結合apscheduler的AsyncIOScheduler模擬定點并發的時候遇到兩個問題,針對每個問題給大家詳細介紹,需要的朋友可以參考下

在使用aiohttp結合apscheduler的AsyncIOScheduler模擬定點并發的時候遇到兩個問題

  1. 在調度器scheduler.start()后,程序直接退出(在Jupiter中任務可以正常啟動)
  2. 如何在指定時間調用scheduler.shutdown()? (因為程序直接退出了)

原調試代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
from datetime import datetime, timedelta
 
import aiohttp
from apscheduler.schedulers.asyncio import AsyncIOScheduler
from apscheduler.jobstores.sqlalchemy import SQLAlchemyJobStore
async def get(session):
    url = 'https://httpbin.org/get?a=1'
    async with session.get(url) as res:
        print('get', res.status)
        return await res.text()
 
async def post(session):
    url = 'https://httpbin.org/post?b=2'
    async with session.post(url) as res:
        print('post', res.status)
        return await res.text()
async def main():
    async with aiohttp.ClientSession() as session:
        await get(session)
        await post(session)
 
if __name__ == '__main__':
    jobstores = {'default': SQLAlchemyJobStore(url='sqlite:///jobs.sqlite')}
    scheduler = AsyncIOScheduler(jobstores=jobstores)
    for i in range(10):  # 添加10個任務
        job = scheduler.add_job(main, 'date', run_date=datetime.now() + timedelta(seconds=10))
    scheduler.start()

Google后發現AsyncIOScheduler的使用需要在scheduler啟動后,需要自己調用asyncio.get_event_loop().run_forever()來啟動協程任務。
但是一旦run_forever()則就會阻塞至死。除非有KeyboardInterrupt, SystemExit等異常或者強殺來停止其運行。
此時想到使用Python的signal來定時發送信號,修改后程序如下,可以正常延遲停止(感覺有點像模擬Go的defer)。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# -*- coding: utf-8 -*-
"""
@Time : 2021/7/23
@Auth : hanzhichao
@Desc:
"""
from datetime import datetime, timedelta
import signal
import asyncio
 
import aiohttp
from apscheduler.schedulers.asyncio import AsyncIOScheduler
from apscheduler.jobstores.sqlalchemy import SQLAlchemyJobStore
 
async def get(session):
    url = 'https://httpbin.org/get?a=1'
    async with session.get(url) as res:
        print('get', res.status)
        return await res.text()
 
async def post(session):
    url = 'https://httpbin.org/post?b=2'
    async with session.post(url) as res:
        print('post', res.status)
        return await res.text()
 
async def main():
    async with aiohttp.ClientSession() as session:
        await get(session)
        await post(session)
 
if __name__ == '__main__':
    jobstores = {'default': SQLAlchemyJobStore(url='sqlite:///jobs.sqlite')}
    scheduler = AsyncIOScheduler(jobstores=jobstores)
    for i in range(10):  # 添加10個任務
        job = scheduler.add_job(main, 'date', run_date=datetime.now() + timedelta(seconds=10))
    scheduler.start()
    signal.alarm(20# 20秒后終止程序
    asyncio.get_event_loop().run_forever()  # 永遠運行

到此這篇關于Python使用signal定時結束AsyncIOScheduler任務的文章就介紹到這了,更多相關Python定時結束AsyncIOScheduler任務內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://www.cnblogs.com/superhin/p/15060818.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 国产传媒一区 | 国产高清视频一区 | 国产一区二区三区高清 | 亚洲五月婷婷 | 一级毛片免费 | 国产区视频 | 国产精品久久久久久中文字 | 国产欧美一区二区三区在线看 | av网站入口| 日韩成人不卡 | 人成网址 | 亚洲一区二区三区精品动漫 | 日韩福利在线 | 久久久中文 | 人人人人澡人人爽人人澡 | 久操资源 | 国产成人在线视频 | 亚洲精品com | 自拍视频在线观看 | av网站免费看 | 国产日韩欧美在线观看 | 久久国产精品偷 | 色天天综合久久久久综合片 | 久久久久久久久99精品 | 龙珠z普通话国语版在线观看 | 快色视频在线观看 | 精品久久一区 | 特级毛片在线 | 91.成人天堂一区 | 成人在线免费观看视频 | 国产一区二区免费视频 | 久久久免费 | 中文字幕1区| 自拍偷拍亚洲欧美 | 最新国产视频 | 国产在线高清 | 欧美一级片在线 | 99国产精品 | 欧美日韩一区在线 | 亚洲免费网站 | 色www精品视频在线观看 |