8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

Python 警告:协同程序‘create_task’未被等待

Dou Xu-MSFT 2月前

56 0

我正在使用 Python 和 PyCharm,我试图使用 asyncio 卸载数据库写入,但在 IDE 警告方面遇到了麻烦。在我的 main.py 中,我以这种方式启动任务db_logging_monitoring_task =

我正在使用 Python 和 PyCharm,我试图卸载数据库写入, asyncio 但遇到了 IDE 警告问题

在我的 main.py 中,我以这种方式启动任务

db_logging_monitoring_task = asyncio.create_task(start_logging_jobs_sniffer())
tasks.append(db_logging_monitoring_task)
await gather(*tasks)

异步函数内部的 while 循环在 start_logging_jobs_sniffer 哪里

# Waits on jobs from a jobs_queue
async def start_logging_jobs_sniffer(self):
    while True:
        try:
            job = await self.logging_jobs_queue.get()


# Adds jobs to a jobs_queue
async def make_logging_job(self, params):
    job = self.LoggingJob(params)
    await self.logging_jobs_queue.put(job)

类似地,在 main.py 中,我有另一个后台监控任务,该任务以 5 秒为间隔进行轮询,然后记录轮询结果

async def poll(self, interval: int):
    if self.is_config_applied:
        while True:
            # ...

            asyncio.create_task(make_logging_job(
                params={
                    **self.polling_results
                },
            ))

但 pycharm 向我发出警告

Coroutine 'create_task' is not awaited 

我特别希望 make_logging_job 任务能够与其他任务并行工作,这就是我不使用的原因 await ,而且这似乎按预期工作。

如果我在出现警告的情况下运行程序,则它们 make_logging_job 似乎是并行的,并且不会阻止任何内容

我完全不明白为什么 PyCharm 会发出未等待的警告 create_task ,还有其他更好的方法来完成任务吗?

将任务保存到变量可以抑制错误,并且似乎通过在后台运行来发挥作用

            test = asyncio.create_task(make_logging_job(
                params={
                    **self.polling_results
                },
            ))

但我不知道这有什么用,我认为将任务保存到变量不会等待协程

帖子版权声明 1、本帖标题:Python 警告:协同程序‘create_task’未被等待
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Dou Xu-MSFT在本站《python》版块原创发布, 转载请注明出处!
最新回复 (0)
  • @Mike'Pomax'Kamermans 这个家伙不使用 create_task 问题是不同的

返回
作者最近主题: