如何调用python函数并且不等待它完成处理,同时该函数必须被调用一次。所以,线程必须停止

时间:2018-06-06 07:26:12

标签: python multithreading asynchronous multiprocessing

我正在使用一个处理ws请求的脚本并将它们作为json响应。同时,这些信息必须插入/更新到DB。但我不想等待DB。我应该尽快回复。我在python中使用“bottle”来这样做。我怎样才能达到解决方案。

1 个答案:

答案 0 :(得分:0)

我找到了答案asyncio。但是它在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))