首页 > 其他分享 >async_ensuer_future_add_done_callback

async_ensuer_future_add_done_callback

时间:2023-07-10 22:12:52浏览次数:33  
标签:__ 10 07 img ensuer callback add 2023 main

async ensuer_future 和 add_done_callback 的用法

import os
from loguru import logger
logger.add(os.path.join(os.path.dirname(__file__) , os.path.basename(__file__).split('.')[0]+'.z.log'))

import time
import asyncio


async def request_img(i):
    logger.debug(f'正在请求第{i}张图片')
    time.sleep(1)
    return f'第{i}张图片' 



def save_img(response):
    logger.debug(response)
    logger.debug(f'保存第{response.result()}图片')


if __name__ == '__main__':
    tasks = []
    for i in range(0,5):
        task = asyncio.ensure_future(request_img(i))
        task.add_done_callback(save_img)
        tasks.append(task)
    loop = asyncio.get_event_loop()
    loop.run_until_complete(asyncio.wait(tasks))
    loop.close()
    logger.debug('所有的图片请求下载完成')



# 2023-07-10 21:52:51.166 | DEBUG    | __main__:request_img:10 - 正在请求第0张图片
# 2023-07-10 21:52:52.167 | DEBUG    | __main__:request_img:10 - 正在请求第1张图片
# 2023-07-10 21:52:53.173 | DEBUG    | __main__:request_img:10 - 正在请求第2张图片
# 2023-07-10 21:52:54.179 | DEBUG    | __main__:request_img:10 - 正在请求第3张图片
# 2023-07-10 21:52:55.185 | DEBUG    | __main__:request_img:10 - 正在请求第4张图片

# 2023-07-10 21:52:56.192 | DEBUG    | __main__:save_img:17 - <Task finished name='Task-1' coro=<request_img() done, defined at /Users/song/Code/script_python/cnblog_upload/src/run.py:9> result='第0张图片'>
# 2023-07-10 21:52:56.193 | DEBUG    | __main__:save_img:18 - 保存第第0张图片图片

# 2023-07-10 21:52:56.194 | DEBUG    | __main__:save_img:17 - <Task finished name='Task-2' coro=<request_img() done, defined at /Users/song/Code/script_python/cnblog_upload/src/run.py:9> result='第1张图片'>
# 2023-07-10 21:52:56.195 | DEBUG    | __main__:save_img:18 - 保存第第1张图片图片

# 2023-07-10 21:52:56.195 | DEBUG    | __main__:save_img:17 - <Task finished name='Task-3' coro=<request_img() done, defined at /Users/song/Code/script_python/cnblog_upload/src/run.py:9> result='第2张图片'>
# 2023-07-10 21:52:56.195 | DEBUG    | __main__:save_img:18 - 保存第第2张图片图片

# 2023-07-10 21:52:56.196 | DEBUG    | __main__:save_img:17 - <Task finished name='Task-4' coro=<request_img() done, defined at /Users/song/Code/script_python/cnblog_upload/src/run.py:9> result='第3张图片'>
# 2023-07-10 21:52:56.196 | DEBUG    | __main__:save_img:18 - 保存第第3张图片图片

# 2023-07-10 21:52:56.196 | DEBUG    | __main__:save_img:17 - <Task finished name='Task-5' coro=<request_img() done, defined at /Users/song/Code/script_python/cnblog_upload/src/run.py:9> result='第4张图片'>
# 2023-07-10 21:52:56.196 | DEBUG    | __main__:save_img:18 - 保存第第4张图片图片

# 2023-07-10 21:52:56.197 | DEBUG    | __main__:<module>:30 - 所有的图片请求下载完成

标签:__,10,07,img,ensuer,callback,add,2023,main
From: https://www.cnblogs.com/zhuoss/p/17542476.html

相关文章

  • C# JObject.Add方法代码示例
    本文整理汇总了C#中Newtonsoft.Json.Linq.JObject.Add方法的典型用法代码示例。如果您正苦于以下问题:C#JObject.Add方法的具体用法?C#JObject.Add怎么用?C#JObject.Add使用的例子?那么恭喜您,这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Newtons......
  • sync.WaitGroup Add( ) 用法
    使用sync.WaitGroup来实现并发任务的同步。Done()通常在函数内使用deferwg.Done()调用。add()学习是我通常也放在函数内,今天我发现在函数内调用会出现问题,主进程会先执行,比如如下代码,会出现问题。packagemainimport( "fmt" "sync")varnintvarwgsync.WaitGroup......
  • 传奇登录器 提示access violation at address的解决方法
     存取违规地址当提示出现accessviolationataddress 可以尝试以下方法解决   右击“我的电脑”。单击“属性”。 在“系统属性”中单击“高级”。 在“性能”中单击“设置”。 在“性能选项”中单击“数据执行保护”。 单击“添加”。选择要运行的......
  • 线程池addWorker执行流程(添加工作线程)
    1//添加工作线程2privatebooleanaddWorker(RunnablefirstTask,booleancore){3//对线程池状态的判断以及对工作线程数量的判断4//外层for循环的标识5retry:6for(;;){7//获取ctl值8intc......
  • Atcoder ARC159C Permutation Addition
    设\(s=\sum\limits_{i=1}^na_i\),考虑加上排列\(p\),那么\(s\leftarrows+\frac{n\times(n+1)}{2}\)。当有解时,因为\(a_i\)相等,所以有\(s\bmodn=0\)。考虑\(n\bmod2=1\)时,\(\frac{n\times(n+1)}{2}\bmodn=0\),所以\(s\bmodn=0\)时才会有解。......
  • 3. Q_ 对内联元素设置_padding_top_和_padding_bottom_是否会增加它的
    Q:对内联元素设置padding-top和padding-bottom是否会增加它的高度?(原题是Doessettingpadding-topandpadding-bottomonaninlineelementaddtoitsdimensions?)A:答案是不会。同上题比较纠结,不太明白这里的dimensions指的是到底是什么意思?放置一边,咱们来分析下。对于......
  • 动态库单独添加Address Sanitizer
    原文地址:https://www.cnblogs.com/liqinglucky/p/address-sanitizer-in-library.htmlAddressSanitizer集成的原理是在汇编过程中(参考:程序编译过程与运行时内存-liqinglucky-博客园(cnblogs.com))编译出.o文件时就将AddressSanitizer的运行时库替换malloc()/free()实现内存......
  • docker中测试Address Sanitizer
    原文地址:https://www.cnblogs.com/liqinglucky/p/address-sanitizer-in-docker.htmlDocker只是提供了一个运行环境,Docker里的程序集成AddressSanitizer与Linux环境编译相比并不需要做任何额外改动。源代码:liqinglucky/DockerHelloWorld-码云-开源中国(gitee.com)一、代码......
  • maven 网关应用:[NACOS ConnectException httpPost] currentServerAddr: http://localh
    网关应用运行忽然报错:[NACOSConnectExceptionhttpPost]currentServerAddr:http://localhost:8848,虽然调整了代码逻辑,但是nacos的配置没有变更过,之前也还能正常跑,网上查了一些,有说是配置优先级的问题,说是Nacos默认的配置优先级最高,覆盖了本地了,但是我遇到的情况是虽然一直......
  • 【paddlepaddle速成】paddlepaddle图像分类从模型自定义到测试
    这是给大家准备的paddlepaddle与visualdl速成例子这一次我们讲讲paddlepadle这个百度开源的机器学习框架,一个图像分类任务从训练到测试出结果的全流程。将涉及到paddlepaddle和visualdl,git如下:https://github.com/PaddlePaddle相关的代码、数据都在我们Git上,希望大家Follow一下......