-1
我有一個類方法coroutine類,並從一個用戶同時獲得多個請求,假設用戶在t = 0進行函數調用,並且函數需要10毫秒的過程,用戶在t = 3毫秒時進行另一次異步調用,然後在t = 10毫秒時響應請求1,並且在t = 20ms時響應請求2,所以請求2的轉換時間爲17毫秒,但是我想要下面的場景,如何確保只有單個進程在線程中運行
如果請求1來自t = 0ms的一個用戶,並且在請求2進入t = 3ms之前運行3ms,那麼調用1必須被銷燬並呼叫響應2必須啓動,並且對於請求2的響應必須在t = 13ms時返回,轉向時間爲10ms。
就像確保每個用戶進行單個進程一樣。 所以,如果有一個函數
def Myfunction(a,b):
return a+b
#user calls
#at t = 0
myfunction(10,5) #takes 10 ms
#at t=3
myfunction(100,200)#takes 10 ms
so i want that myfunction must have only single/latest call instance running for each user i.e in above case only myfunction(100,200) my be occupying the the CPU after t=3 .
我使用python ASYNCIO從語句和事件循環庫和產量。
請提供一些想法如何實現上述想法。
只是可以肯定,等待用戶響應啓動一個線程,那麼你要銷燬線程,如果用戶調用同樣的事情再次啓動它一遍? –
是的,我想摧毀那個線程,如果用戶再次調用相同的東西來清空新的調用CPU –
你知道你的代碼不會創建一個新的線程嗎? –