簡體   English   中英

Quartz .Net體系結構問題

[英]Quartz .Net architecture question

這是場景。 我有一個由於多種原因可以與服務器保持穩定連接的應用程序。 我需要從Web服務器獲取或發布到Web服務器的三組常規對象。

  1. 業務數據對象。 這實際上是從服務器下拉到客戶端計算機並存儲在本地數據庫中的數據。 如果用戶更新其本地計算機上的數據,則會對其進行標記並需要發送以與服務器同步。 大約有6個自定義類,它們將需要提取數據並將數據發送到服務器(需要時)。

  2. 文件。 就像它指出的那樣,這種同步是針對文件的。 文件可以上傳到服務器。 但更重要的是,可以將文件下載到客戶端。 將有從服務器自動發送的文件和其他需要的文件。

  3. 連接/登錄查詢。 這些同步將從服務器中獲取用戶信息,並定期檢查更新的信息並驗證權限。 還需要進行檢查以確保應用程序已連接到服務器,並且如果連接斷開,則應進行適當處理。

我對Quartz並不陌生,正在嘗試思考設置這三種我想發生的同步的最佳方法。 我有幾個問題。

  1. 如果我想要多個線程池,我是否只想創建3個單獨的調度程序工廠? 我將如何使用配置來完成此操作,或者需要在工廠的每次實例化之前對其進行編碼以顯式設置Quartz屬性?

  2. 有時業務數據對象同步將是最重的負載。 當用戶首次登錄或被分配其他權限時,可能要求他們從服務器下載多達1萬個對象/記錄。 這種情況很少發生,理想情況下,用戶可以連接,數據全部下載,並且5-10分鍾后,他們可以將應用程序用於其目的。 這種同步將需要不斷檢查服務器以查看其是否為新數據,並監視本地數據以查看是否需要將新數據發送到服務器。 讓工廠使用自己的線程池(例如10個線程)來處理所有這些問題是否有意義?

歸根結底,我只是想弄清楚如何初步規划整個過程,並將各部分分開以輕松地進行管理並正確地進行。 這是一個概念證明,任何幫助將不勝感激。 請隨時批評以上任何內容。

謝謝!

您可以通過實現Quartz.Spi.IThreadPool插入自定義線程池。 調度程序只有一個IThreadPool ,但是您可以屏蔽該單個接口后面的多個線程池,盡管實現需要有關被調度的作業的信息才能將它們派生到每個線程。

默認實現Quartz.Simpl.SimpleThreadPool具有固定(可配置)數量的線程,所有線程都具有相同(可配置)優先級。

否則,您可能會說多個調度程序。 這比較容易,您只有多個獨立的調度程序工廠,但它們不應共享任何狀態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM