python-asyncio相关内容
我希望在写入时读取几个日志文件,并使用Asyncio处理它们的输入。代码必须在Windows上运行。根据我对Stackoverflow和Web的搜索了解,异步文件I/O在大多数操作系统上都很棘手(例如,select不会按预期工作)。虽然我确信我可以使用其他方法(例如线程)来做到这一点,但我想我应该尝试一下asyncio,看看它是什么样子。最有帮助的答案可能是描述此问题的解决方案的“体系结构”应该是
..
我有一个异步程序,有两个任务: 任务%1做了一些工作 任务2提供命令行界面(CLI),它从用户读取命令并将其发送到任务1进行处理 CLI基本上是从连接到标准输入的异步流中读取行的循环。 它能用,但不太舒服。问题是输入行没有提供编辑命令,除了在Linux终端级别处理的[backspace ctrl-H]和[ctrl-U],而不是在程序中。我至少需要[左]和[右]箭头以及[删除]。
..
我正在尝试编写用于不一致的机器人,但不断收到错误信息: 文件";bot.py";,第33行 等待成员.create_dm() ^ 语法错误:异步函数外部的‘等待’ 我正在尝试让机器人向刚加入服务器的人发送DM。 @client.event @asyncio.coroutine def on_member_join(member): await member.c
..
tkinter和asyncio在一起工作时遇到了一些问题:它们都是希望无限期挡路的事件循环,如果您尝试在同一线程上运行它们,其中一个将挡路另一个永远不会执行。这意味着如果要运行tk事件循环(Tk.mainloop()),则不会运行任何异步任务;如果要运行异步事件循环,则GUI永远不会显示在屏幕上。要解决这个问题,我们可以通过调用Tk.update()作为异步任务(如下面的UI_UPDATE_TAS
..
我正在使用Asyncio构建一个应用程序。我将使用sqlalChemy作为orm。 据我所知,Scope_Session将一个会话与一个线程相关联,这样它们就不会与彼此的操作相关联。 现在,由于asyncio在单个线程上工作,并且我认为Scope_Session将不能正常工作,这将导致问题。 将sqlalChemical会话与Asyncio一起使用的正确方式是什么? 推荐答案 答案取决
..
我的源代码: import asyncio async def mycoro(number): print(f'Starting {number}') await asyncio.sleep(1) print(f'Finishing {number}') return str(number) c = mycoro(3) task = asyncio.cre
..
作为我的previous question about calling an async function from a synchronous one的后续工作,我发现asyncio.run_coroutine_threadsafe。 从纸面上看,这看起来很理想。根据this StackOverflow question中的评论,这看起来很理想。我可以创建一个新的线程,获取对原始事件循环的
..
在同一个Python项目中同时使用Asyncio和线程,以便代码在不同的线程中运行,其中一些线程使用Ayncio为异步活动获取顺序查找的代码,这样做有意义吗? 或者尝试这样做是否意味着我错过了有关线程或异步的用法的一些基本概念? 推荐答案 确保这可能有意义。 原则上,异步代码在同一线程中运行多个例程。 这意味着当一个例程必须等待输入或输出(I/O)时,它将暂时停止该例
..
我有一个文本文件,其名称用逗号解析,如下所示: Ann Marie,Smith,ams@companyname.com 列表中可能有100多个名字。我省略了生成所有其他GUI组件的代码,将重点放在加载组合框和项上。 问题: 如何实现asyncio在不阻塞主线程加载其他GUI组件的情况下读取文本文件。 这是我能想到的最好的了: import wx import as
..
我想知道如何使用Asyncio来处理与NodeJS类似的任务。我想在不打开线程的情况下同时运行任务。 示例: import asyncio @asyncio.coroutine def my_coroutine(task_name, seconds_to_sleep=3): print('{0} sleeping for: {1} seconds'.format(task_name
..
我有一个Django应用程序,在它的一个视图中,我使用Asyncio向外部组件发出一些并发请求。 想法是这样的: import asyncio async def do_request(project): result = ... return result def aggregate_results(projects: list): loop = as
..
我有一个函数可以持续监控API。基本上,该函数获取数据,对其进行解析,然后将其附加到文件中。然后等待15分钟,并反复执行相同的操作。 我想要的是在后台运行此循环,这样我就不会对代码的睡觉执行进行挡路攻击。 推荐答案 如果您正在使用Asyncio(我假设您是由于Asyncio标记),则可以使用任务执行计划操作。 import asyncio loop = asyncio.g
..
有很多库使用其自定义版本的Future。kafka和s3transfer只是两个例子:它们的所有类似未来的自定义类都将object作为超类。 毫不奇怪,您不能对此类对象直接调用asyncio.wrap_future(),也不能对它们使用await。 包装此类期货以便与Asyncio一起使用的正确方式是什么? 推荐答案 如果未来类支持完成回调和result方法等标准未来功能,
..
我对Python的异步、Python中的异步编程、协同例程等非常熟悉。 我希望能够使用自己定制的eventloop执行几个协同例程。 我很好奇是否可以在完全不导入异步的情况下编写自己的eventloop 推荐答案 我希望能够使用自己定制的eventloop执行多个协同例程。 异步事件循环经过了良好的测试,可以轻松扩展以确认非异步事件。如果您描述实际的用例,可能更容易提供帮助。但
..
我有一个函数,它发出一个HTTP请求,然后返回响应。我希望这个函数能够根据参数在阻塞或非阻塞模式下运行。这在Python语言中是可能的吗?我想象的伪代码应该是这样的: def maybe_async(asynchronous): if asynchronous: # We assume there's an event loop running and we can
..
我尝试在事件循环外部使用协程函数。(在本例中,我希望在Django中调用也可以在事件循环内使用的函数) 似乎没有办法在不使调用函数成为协程的情况下执行此操作。 我知道Django是为阻塞而构建的,因此与Asyncio不兼容。虽然我认为这个问题可能会帮助那些正在进行转换或使用遗留代码的人。 为此,了解异步编程以及为什么它不适用于阻塞代码可能会有所帮助。 推荐答案 经过大
..
我正在尝试使用不同的参数同时运行多个函数(大约或过程),并在每分钟开始时重复此操作。 我设法让asyncio示例运行,其中我让函数callback使用不同的参数在特定时间运行,但我不知道如何在非常特定的时间运行它(并永远运行它)(即我想在每分钟开始时运行它,因此在19:00:00、19:01:00等等)。 Asynciocall_at应该能够做到这一点,但它使用的时间格式不是标准的Py
..
我注意到异步库有一个loop.add_signal_handler(signum, callback, *args)方法。 到目前为止,我只是在主文件中使用signals模块捕获Unix信号,我的异步代码如下所示: signal.signal(signal.SIGHUP, callback) async def main(): ... 这是我的疏忽吗? 推荐答案
..
我正在开始使用AsyncIO和AioHTTP,并且我正在编写一些基本代码来熟悉语法。我尝试了以下应同时执行3个请求的代码: import time import logging import asyncio import aiohttp import json from aiohttp import ClientSession, ClientResponseError from aiocfs
..
设想一个异步aiohttpWeb应用程序,该应用程序由通过asyncpg连接的PostgreSQL数据库支持,并且没有其他I/O。如何才能有一个托管应用程序逻辑的中间层,即而不是异步?(我知道我可以简单地使所有东西都异步--但是想象一下我的应用程序有大量的应用程序逻辑,仅由数据库I/O绑定,并且我不能触及它的所有内容)。 伪码: async def handler(request):
..