我有一個正在進行的項目,這個項目正在創建一個Windows服務,它基本上將文件移動到多個路徑中。一項工作可能是每60秒從FTP服務器獲取與正則表達式匹配的所有文件,並將它們傳輸到網絡路徑,等等。這些作業存儲在SQL數據庫中。我在C#和Quartz.NET中創建的Windows服務的提示和技巧
目前,該服務採用控制檯應用程序的形式,以方便開發。作業是使用ASP.NET頁面添加的,並且可以使用另一個ASP.NET頁面進行編輯。
雖然我有一些問題,有些涉及到Quartz.NET和一些常規問題。
Quartz.NET:
1:這是我最大的問題。看到我正在開發應用程序作爲控制檯應用程序暫時,我不得不在我所有的文件/頁面上創建一個新的Quartz.NET調度程序。這導致了多個令人困惑的錯誤,但我不知道如何在一個全局文件中安排調度器,並在我的ASP.NET頁面中訪問這些調度器(例如,我可以將細節放入一個網格視圖中進行編輯,例如)
2:我的經理會建議我可以考慮在Quartz.NET中有多個「配置」。這意味着在任何時候,管理員都可以更改應用程序配置,以便只運行專門選擇的應用程序。在Quartz.NET中做這件事最簡單的方法是什麼?
一般:
1:有一兩件事,那就是在這個應用程序的關鍵是保證該文件已被移動,它實際上是在目標路徑上(原始文件被刪除後的舉動,所以這將是災難性的如果該文件在沒有被真正複製時被刪除!)。我還需要確保文件內容在最初的路徑上相匹配,並確保目標路徑讓您放心,複製的內容是正確的。我目前正在通過MD5散列初始文件,複製文件以及在刪除它之前確保該文件存在於服務器上。然後我在服務器上散列該文件並確保哈希匹配。有沒有更簡單的方法來做到這一點?我擔心哈希可能會給系統帶來壓力。
2:這與上述問題有關,但不是至關重要因爲甚至連我的經理都沒有任何想法我會這樣做,但我很樂意實現這一點。如果在寫入文件時執行作業,則可能會出現問題,這可能是因爲一半文件將被傳輸,從而使其完全無用,並且它也會很糟糕,因爲初始文件會被破壞它正在寫入!有沒有辦法檢查這個?