python - python函数如何调用并且不等待它完成处理,而该函数必须被调用一次。因此,线程必须停止

标签 python multithreading asynchronous multiprocessing

我正在使用处理ws请求并将其作为json响应的脚本。必须同时将这些信息插入/更新到DB。但是我不想等待DB。我应该尽快返回响应。我在python中使用“瓶”来做。我如何才能找到解决方案。

最佳答案

我找到了答案异步。但是它在python3上工作。这是我到达的站点。他们在那里有很好的移栽。
https://medium.freecodecamp.org/a-guide-to-asynchronous-programming-in-python-with-asyncio-232e2afa44f6

这是他们资源中的一个例子。

import asyncio  
import time  
from datetime import datetime

async def custom_sleep():  
    print('SLEEP', datetime.now())
    time.sleep(1)
async def factorial(name, number):  
    f = 1
    for i in range(2, number+1):
        print('Task {}: Compute factorial({})'.format(name, i))
        await custom_sleep()
        f *= i
    print('Task {}: factorial({}) is {}\n'.format(name, number, f))

start = time.time()  
loop = asyncio.get_event_loop()
tasks = [  
    asyncio.ensure_future(factorial("A", 3)),
    asyncio.ensure_future(factorial("B", 4)),
]
loop.run_until_complete(asyncio.wait(tasks))  
loop.close()
end = time.time()  
print("Total time: {}".format(end - start))

关于python - python函数如何调用并且不等待它完成处理,而该函数必须被调用一次。因此,线程必须停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50714551/

相关文章:

c# - 任务等待困惑

python - 如何使用 Pandas 查找重复名称?

Python字典切换通过其他函数而不仅仅是调用的函数

Python-判断给定字符串是否只有 1 个字符重复的最有效方法是什么?

Python - map() 拆分并仅获取第一部分

java - 如何可靠地从 Guava LoadingCache 中删除记录?

c# - 取消后如何开始任务

java - 在java中使用javaStreamingContext上下文实现多线程时出现问题

multithreading - iOS 上的 GCD 可以处理数百个已调度的 block 吗?

javascript - Nodejs 使用 while 循环异步