2016-08-25 291 views
0

對於大多數請求/路由,15或30s的標準harakiri值可以。uWSGI:覆蓋燒瓶/ python中的默認harakiri持續時間

但有幾個端點長時間運行(例如生成報告時),我希望客戶端在準備並返回時同步等待。

我可以在uwsgi.ini中設置默認的harakiri值,然後在代碼中使用flask/python覆蓋它,或者在燒瓶中使用裝飾器?

以前的答案顯示瞭如何使用uWSGI config/routes完成此操作,但我寧願將這些特殊情況與標準uWSGI超時配置分開。 uWSGI - Different Harakiri Timeout for Django Admin

任何指針?

回答

0

那麼,如果你寫的項目可以用不同的方式寫,那麼你可以做生成過程。這是許多選項之一:

創建一個鏈接,將啓動後端進程。用戶頁面刷新後,將會有正在生成的字詞。然後你有兩個選擇,首先告訴最終用戶:我們會在完成時通知你,併發送給他一些甚至是電子郵件通知,或者最簡單的一個,你什麼都不做,但只檢查特定進程是否正在運行在您計算機的後臺並根據回答「是/否」顯示指向文件的鏈接或留下一條消息,表明他仍然必須等待,因爲進程尚未結束。

在我描述的情況下,每個長生成將從HTTP層分離。如果您可以預測何時會超時,您甚至可以將其與您的方法混合使用。

希望我解釋得夠。

+0

感謝@ turkus,這可能是我需要採取的方法,如果我不能動態覆蓋默認超時值。 – python1981