抱歉,如果標題不太正確,我不能 100% 確定我在尋找什么。我有一些代碼執(zhí)行以下操作:public static ProcessData(){ AddNewData() GetAllData() BuildTSV(); Send();}它是一個 MVC Web 應用程序,ProcessData 是傳遞某種表單數據的 Ajax 調用。AddNewData 寫入數據庫,這是對執(zhí)行基本插入的存儲過程的簡單調用。GetAllData 查詢數據庫,它是單個表上的簡單 SELECT 語句。BuildTSV 使用數據庫數據構造一個文件,然后將其發(fā)送到遠程服務器。如果連續(xù)足夠快地命中 BuildTSV,我會遇到文件鎖定問題(而不是數據庫)。BuildTSV 使用簡單的 StreamWriter。我無法更改此工作流程,我想以某種方式匯集 AddNewData() 調用,然后僅在它們全部完成后才繼續(xù)。線程?排隊?阻止收集?如果文件被鎖定,請稍等一下,然后重試?這對我來說是全新的,我正在努力理解 1001 種不同的方法。
1 回答

蝴蝶刀刀
TA貢獻1801條經驗 獲得超8個贊
最后我創(chuàng)建了一個小服務來處理這個問題。
我將查詢數據庫并跟蹤表中的行數。如果此值增加,我將選擇所有數據并將其處理為平面文件,然后發(fā)送。它每隔幾分鐘運行一次并解決了我的所有問題。
我以此為起點,基本上轉儲了負責將數據提取到平面文件中然后發(fā)送的現有代碼,以及一些添加的日志記錄和服務停止時的電子郵件通知。
- 1 回答
- 0 關注
- 116 瀏覽
添加回答
舉報
0/150
提交
取消