簡體   English   中英

time.sleep,燒瓶和I / O等待

[英]time.sleep, Flask and I/O wait

使用time.sleep() ,Flask請求會被阻止嗎?

我的Flask端點之一啟動了一個長處理子任務,在某些情況下,與其異步完成工作,還可以等待任務完成並在同一請求中返回結果。

在這種情況下,我的Flask應用會啟動該過程,然后等待它完成,然后再返回結果。 我的問題是,在調用類似(簡化)的內容時:

while True:
    if process_is_done():
        break

    time.sleep(1)

Flask會阻止該請求直到完成,還是允許其他請求同時出現?

是的,該請求已被完全阻止。 time.sleep()不會通知任何睡眠,它只是在整個過程中“閑置” CPU。

Flask本身不是異步的,它沒有保留請求處理程序並給其他請求更多時間的概念。 好的WSGI服務器將使用線程和/或多個工作進程來實現並發,但是這個請求被阻止了,並且占用了CPU時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM