我的應用程序在幾毫秒內最多可以處理大約100個批處理作業的請求,但實際上,這些作業請求被屏蔽爲一個作業請求。 要解決此問題,以便目前只有一個工作請求不可行。ASP.NET:激發批處理作業
我想過的解決方法是編程我的應用程序,每x毫秒只執行1個批處理作業,在這種情況下,我想到的是200毫秒,並忽略可能在200毫秒內進入的任何其他批處理作業,或者當我的批處理作業完成時。在200毫秒後,或者批量作業完成後,我的應用程序將等待並接受來自此時的1個作業請求,並且它不會處理之前可能被忽略的任何請求。一旦我的應用程序接受了另一個工作請求,它將重複上述循環。
使用.Net 4.0做這件事的最好方法是什麼?是否有任何我可以簡單遵循的鍋爐板代碼作爲指導?
更新 對不起,不清楚。我已經添加了關於我的場景的更多細節。此外,我只是意識到,我上面提出的解決方法將無法正常工作。對不起,夥計們,哈哈。這是一些背景信息。
我有一個應用程序使用指定目錄中的文件構建索引。當在此目錄中添加,刪除或修改文件時,我的應用程序將使用FileSystemWatcher監聽這些事件並重新索引這些文件。問題是大約100個文件可以被外部進程添加,刪除或修改,並且它們發生得很快,即:在幾毫秒內。我的最終目標是在外部進程發生最後一次文件更改後重新編制這些文件的索引。最好的解決方案是修改外部進程,以便在完成修改正在監聽的文件時告知我的應用程序,但目前不可行。因此,我必須創建一個解決方法。
可能解決我的問題的解決方法是等待第一個文件更改。發生第一次文件更改時,對其他後續文件更改等待200毫秒。爲什麼要200毫秒?因爲我希望並確信外部進程可以在200毫秒內執行其文件更改。一旦我的應用程序等待了200毫秒,我希望它啓動一個任務,它將重新索引這些文件,並通過另一個收聽文件更改的循環。
這樣做的最好方法是什麼?
再次,抱歉的混淆。
我怎麼看不到延遲的請求的200ms將解決症狀。這聽起來像是工作流程需要重新設計,否則你會發現自己以後也會遇到同樣的情況。爲什麼不解決問題而不是解決症狀? – 2012-01-10 16:33:20