我在python中編寫一個服務器,需要從客戶端獲取請求,排隊請求,一次執行一個請求,然後告訴客戶端他們的特定請求已被處理。編寫一個排隊任務的服務器
目前我接觸到它的方式是使用TCP套接字服務器 - 但是,我不知道如何使它只有一個請求正在從隊列中執行一次?
我想爲它的樣子:
Client1 -> (a) -> Server
Client2 -> (b) -> Server
Client3 -> (c) -> Server
Server makes queue |a, b, c|
Execute a first. Done? Tell Client 1
Execute b second. Done? Tell Client 2
Execute c third. Done? Tell Client 3
據我瞭解,如果我的recv客戶端的請求的服務器,執行它,並作出迴應,這可能在同一時間發生不同的線程。我只希望一個線程執行所有任務(因爲我預計會有很多任務進入,如果每個人同時運行一個任務,它會很慢)。我如何實現這一目標?
困惑?你有一臺服務器從Q讀取?爲什麼會有多個任務同時進行? – Nix 2011-06-08 17:48:03
我沒有隊列,我不知道如何實現它,以便服務器以上述方式運行。目前它每次創建一個新的連接時都會產生一個新的線程,與我所瞭解的情況相同。我希望單個腳本將任務排隊,線性執行它們,然後通知完成任務的客戶端。我不知道如何做到這一點。 – 2011-06-08 17:52:01
這些是長時間運行的任務嗎? – Nix 2011-06-08 18:13:07