-
2 votesanswersviews
Asyncio正常关闭推送服务器
考虑(其中 queue 是 asyncio.Queue ,我正在使用与标准库中的 asyncio 相同的服务器接口的asyncio websockets库): async def handler(websocket: websockets.WebSocketServerProtocol, path): while True: data = await queue.get()... -
6 votesanswersviews
Aiohttp,Asyncio:RuntimeError:事件循环已关闭
我有两个脚本,scraper.py和db_control.py . 在scraper.py我有这样的事情: ... def scrap(category, field, pages, search, use_proxy, proxy_file): ... loop = asyncio.get_event_loop() to_do = [ get_pages(url, pa... -
0 votesanswersviews
使用asyncio和aiohttp实现异步程序的最佳架构
我试图了解如何最好地构建一个程序执行以下操作: 考虑多个分析 . 每个分析都请求来自多个数据源(REST API)的数据 . 在每次分析中,当从数据源收集所有数据时,将检查数据的一个或多个条件 . 如果满足这些条件,则会向另一个数据源发出另一个请求 . 目标是收集所有分析异步的数据,检查每个分析的条件,请求条件是否满足然后重复 . 因此,有以下要求: 检查数据的条件 after 在特定分析中收... -
1 votesanswersviews
aiohttp中的超时WebSocket连接
我的WebSocket服务器实现向全世界开放,但客户端需要在 Build 连接或服务器应关闭连接后发送身份验证消息 . 我怎样才能在aiohttp中实现它?看来,我需要做以下事情: 为每个套接字连接创建一个 on_open 方法:我找不到一种方法(类似于Tornado中的on_open)来创建这样的事件 . 创建计时器:可以使用主事件循环的asyncio的 sleep 或 call_bac... -
4 votesanswersviews
限制并发请求数aiohttp
我正在使用aiohttp下载图像,并想知道是否有办法限制尚未完成的打开请求的数量 . 这是我目前的代码: async def get_images(url, session): chunk_size = 100 # Print statement to show when a request is being made. print(f'Making request ... -
32 votesanswersviews
如何将python asyncio与线程结合起来?
我已成功构建了一个带有Python asyncio和aiohttp的RESTful microservice,它可以监听POST事件以从各种馈送器收集实时事件 . 然后,它构建一个内存中结构,以便在嵌套的defaultdict / deque结构中缓存最后24h的事件 . 现在我想定期检查该结构到光盘,最好使用泡菜 . 由于内存结构可能> 100MB,我想避免在检查结构所需的时间内阻止我的传... -
3 votesanswersviews
如何在Python中使用aiohttp或asyncio创建并行循环?
我想使用rethinkdb .changes()功能将一些消息推送给用户 . 消息应该在没有用户请求的情况下发送 . 我正在使用rethinkdb与aiohttp和websockets . 这个怎么运作: 用户发送消息 Server将其放入rethinkdb 我需要什么:附加循环使用rethinkdb .changes 函数向连接的用户发送更新 这就是我启动应用程序的方式: @a... -
9 votesanswersviews
如何缓存asyncio协同程序
我正在使用aiohttp在python 3.4中发出一个简单的HTTP请求,如下所示: response = yield from aiohttp.get(url) 应用程序一遍又一遍地请求相同的URL,所以我自然想要缓存它 . 我的第一次尝试是这样的: @functools.lru_cache(maxsize=128) def cached_request(url): return a... -
1 votesanswersviews
客户端和aiohttp Web服务器之间的短路连接
我正在编写一个使用aiohttp发布web api的应用程序 . 我还需要使用另一个协议(xmpp)发布相同的api . 目前解决方案是将xmpp客户端嵌入到使用常规HTTP连接(aiohttp客户端)连接到web api的相同进程中,并通过xmpp转发响应 . 但是因为它们都在同一个过程中运行,所以如果有一种方法可以“短路”连接,我更愿意 . 我正在考虑创建一个Request实例并将其传递给ai... -
3 votesanswersviews
是否可以在后台启动asyncio事件循环而不产生线程或进程?
我有一个在Python 3.5中实现的服务,应该定期通过网络加载文件 . 我想避免在加载时阻塞主线程 . 为了避免将线程和共享内存的复杂性引入我的应用程序,我想使用带有asyncio包的事件循环来检测它 . 为了运行一个事件循环,我找到了 AbstractEventLoop.run_forever() 和 AbstractEventLoop.run_until_complete(future) 方... -
12 votesanswersviews
多个aiohttp Application()在同一个进程中运行?
可以在同一进程中运行两个 aiohttp.web.Application() 对象,例如在不同的港口? 我看到一堆aiohttp代码示例: from aiohttp import web app = web.Application() app.router.add_get('/foo', foo_view, name='foo') web.run_app(app, host='0.0.0.0', ... -
15 votesanswersviews
Python aiohttp / asyncio - 如何处理返回的数据
我正在使用aiohttp将一些同步代码移动到asyncio . 同步代码需要15分钟才能运行,所以我希望能够改进这一点 . 我有一些工作代码从一些网址获取数据并返回每个网址的主体 . 但这只是针对1个实验室网站,我有70个实际网站 . 因此,如果我有一个循环来创建所有网站的所有网址列表,这些网址将在列表中处理700个网址 . 现在处理它们我不认为是一个问题? 但对结果做'东西',我不知道如何编程?... -
6 votesanswersviews
如何设置aiohttp https服务器和客户端?
我试图了解如何保护数据在通过服务器和工作服务器之间的开放网络后被更改 在我的脑海中,我在想它应该遵循以下内容: |server|---send_job----->|worker| | |<--send_results--| | | | | | | |-send_kill_req-->| |... -
2 votesanswersviews
使用子模块[discord.py]中的命令与后台任务交互
我有一个用非重写版本的discord.py写的Discord bot,它发送一个类似心跳的消息(除其他外) . 我不知道我是否理解正确但是从测试中我发现我需要在 main.py 文件中使用 async def heartbeat() 函数 . 摘自 main.py (心跳按预期工作): [...] import asyncio import datetime from configparser i... -
3 votesanswersviews
Discord.py Bot的权限系统
我正在使用discord.py和asyncio制作一个discord bot . 机器人有像 kick 和 ban 这样的命令,显然不应该对普通用户可用 . 我想创建一个简单的系统,它将使用 ctx.message.author 来检测用户角色拥有的权限,以获取发送命令的用户 . 我不希望机器人检测到特定的角色名称,因为这些角色因服务器而异 . 我也不希望机器人有多个文件来保持简单 . 我已经看过... -
1 votesanswersviews
Python AsyncIO中的Async Generator产生的效果
我有一个简单的类,利用异步生成器来检索URL列表: import aiohttp import asyncio import logging import sys LOOP = asyncio.get_event_loop() N_SEMAPHORE = 3 FORMAT = '[%(asctime)s] - %(message)s' logging.basicConfig(stream=sy... -
5 votesanswersviews
使用aiohttp / asyncio进行1百万请求 - 字面意思
我跟进了这个教程:https://pawelmhm.github.io/asyncio/python/aiohttp/2016/04/22/asyncio-aiohttp.html当我做了50 000个请求时,一切正常 . 但我需要进行1百万个API调用,然后我对此代码有问题: url = "http://some_url.com/?id={}" tasks = set... -
0 votesanswersviews
使用asyncio async和await运行python应用程序
我试图使用asyncio和关键字await / async与python 3.5我对python中的异步编程相当新 . 我对它的大部分经验都是使用NodeJS . 我似乎正在做正确的事情,除了调用我的启动函数来启动程序 . 下面是一些虚构的代码,可以解决我的困惑,因为我的代码库相当大,由几个本地模块组成 . import asyncio async def get_data(): foo... -
1 votesanswersviews
asyncio中的合作产量
我想把这个任务卸载到一个线程(现在) . 如何在这个长时间运行的任务中正确"yield"控制到eventloop,以便仍然提供Web请求(注意:我在这里使用"yield"在协同调度意义上,不是在生成器意义上,或者是python关键字 yield ) . 我的建议是做一个 await asyncio.sleep(0) ,但有保证这不仅仅是作为NOP实现的吗?我... -
4 votesanswersviews
Python 3 asyncio - 来自vs asyncio.async堆栈使用率
我'm evaluating different patterns for periodic execution (actual sleep/delays ommited for brevity) using the Python 3 asyncio framework, and I have two pieces of code that behave diffrently and I can'... -
0 votesanswersviews
为什么loop.run_forever()锁定我的主线程?
学习asyncio时我正在尝试这段代码: import asyncio from asyncio.coroutines import coroutine @coroutine def coro(): counter: int = 0 while True: print("Executed" + str(counter)) c... -
2 votesanswersviews
async def和coroutines,链接是什么
我试图围绕Python3中出现的新的asyncio功能 . 我从一个在stackoverflow上找到的简单工作者示例开始,修改了一下: import asyncio, random q = asyncio.Queue() @asyncio.coroutine def produce(name): while True: value = random.random() ... -
37 votesanswersviews
@ asyncio.coroutine vs async def
有了我见过的 asyncio 库, @asyncio.coroutine def function(): ... 和 async def function(): ... 可互换使用 . 这两者之间有什么功能差异吗? -
1 votesanswersviews
测试从常规函数调用python协程(async def)
假设我有一些asyncio协程,它会获取一些数据并返回它 . 像这样: async def fetch_data(*args): result = await some_io() return result 基本上这个协同程序是从协程链中调用的,初始协同程序是通过创建任务来运行的 . 但是,如果出于测试目的,我只想在运行某个文件时以这种方式运行一个协程: if __name__ == '... -
11 votesanswersviews
python asyncio add_done_callback with async def
我有两个函数:第一个, def_a ,是一个异步函数,第二个是 def_b ,它是一个常规函数,并使用 def_a 的结果作为 add_done_callback 函数的回调调用 . 我的代码看起来像这样: import asyncio def def_b(result): next_number = result.result() # some work on the next... -
2 votesanswersviews
使用Python中的asyncio并行化Web任务
我正试图围绕asyncio和aiohttp,并且多年来第一次编程让我觉得完全愚蠢和无能为力 . 这是一种美丽的,以古怪的禅宗方式 . 但是,唉,还有很多工作要做 . 我有一个现有的课程,可以在网上做很多奇妙的事情,比如注册网站,获取数据,工作 . 现在我需要100或1000个这样的小工蜂来报名 . 代码看起来大致如下: class Worker(object): def signup(se... -
6 votesanswersviews
如何使用async for循环迭代列表?
所以我需要为列表中的所有项调用 async 函数 . 这可以是一个URL列表和一个使用 aiohttp 的异步函数,它从每个URL获取响应 . 现在显然我不能做到以下几点: async for url in ['www.google.com', 'www.youtube.com', 'www.aol.com']: 我可以使用普通的for循环但是我的代码将同步操作,我失去了 async 响应获取功... -
14 votesanswersviews
Asyncio RuntimeError:事件循环已关闭
我正在尝试使用Asyncio和aiohttp库发出一堆请求(~1000),但我遇到了一个我找不到太多信息的问题 . 当我用10个网址运行这个代码时,它运行得很好 . 当我用100个网址运行它时,它会中断并给我 RuntimeError: Event loop is closed 错误 . import asyncio import aiohttp @asyncio.coroutine def ... -
1 votesanswersviews
如何使用python asyncio从EC2实例调用AWS Lambda函数
我最近发布了一个关于How to allow invoking an AWS Lambda function only from EC2 instances inside a VPC的问题 . 我设法通过将带有"AWS lambda role"策略的IAM角色附加到EC2实例来实现它,现在我可以使用boto3调用lambda函数 . 现在,我想使用asyncio await语法... -
3 votesanswersviews
Flask应用程序中的asyncio event_loop
在Flask应用程序中运行asyncio事件循环的最佳方法是什么? 我的main.py看起来像这样: if __name__ == '__main__': try: app.run(host='0.0.0.0', port=8000, debug=True) except: logging.critical('server: CRASHED: Got...