佇列和資料處理任務 FME伺服器和排隊的藝術

2021-09-10 10:14:25 字數 3292 閱讀 9228

fme伺服器佇列和引擎

fme server中有乙個佇列和一些引擎。乙個特別大的工作任務不能阻止佇列;最多只能**乙個引擎。使用者可以將工作任務傳送到特定的引擎,但只能使用配置檔案,並且可以為每個單獨的作業設定優先順序。

但是,大型機構單位可能會有多個使用者提交多個大型工作任務。在這種情況下,這些工作任務可能會占用所有的引擎,導致小型任務的(也許更重要的)工作停滯不前。

簡單的說就是如果乙個單位擁有多個需求不平等的部門,那麼某些使用者需要少量時間共享一小部分伺服器,大型工作任務占用所有引擎導致小型任務停滯不前的這種方式並不適用。所以在fme server中,可新增建立多個佇列的能力,並將它們對映到多個引擎。這種技術也稱伺服器容量管理。

新增佇列和分配資源

如下圖所示。一共有八個引擎可用

下圖中,顯示的是乙個預設的佇列,可以通過create queue來建立乙個新的佇列(a)。

上圖中有乙個優先順序引數,可以在佇列級別設定作業優先順序。工作級別優先順序已棄用(儘管目前它仍作為高階引數存在),其中數字越小表示優先順序越高。

ps:將引擎分配給佇列,而不是引擎的佇列。在新建的列隊中,將引擎7分配給佇列,優先順序為3。引擎7也分配給預設佇列,但其優先順序為5。因此,如果在兩個佇列中都有等待引擎的工作任務,並且引擎7沒有被其他任務占用,新建列隊的工作就會得到優先考慮。

也可以將引擎7從預設佇列中完全刪除,只儲存提交給新建佇列的工作任務的引擎。這樣做會使優先順序設定變得多餘。只有將相同的引擎分配給多個佇列才具有優先權。

您還會發現每個儲存庫都可以分配給乙個佇列。像引擎一樣,我將儲存庫分配給佇列,而不是儲存庫的佇列。與引擎不同,每個儲存庫最多分配乙個佇列。如果我將庫新增到第二個佇列中,它必須從第乙個佇列中刪除:

預設情況下,fme將所有工作分配到其各自工作區儲存庫的佇列中。所以可以建立乙個庫並將庫分配給新建的佇列,或者,將新建佇列儲存庫分配給其他儲存庫等,或者不分配給任何儲存庫,在這種情況下,執行任務的使用者將指定要提交給它的佇列。

指定乙個佇列

以上內容顯示了系統管理員如何設定佇列。但是,也有使用者將工作任務提交到特定佇列的機制。

首先,如果乙個儲存庫被分配給乙個佇列,那麼不需要指定任何內容。他們只是提交工作進行處理。

如果使用者想在執行時選擇乙個佇列,那麼他們可以在web使用者介面中執行此操作:

佇列也通過rest api分配。命令/轉換/作業路線給出了建立標籤(佇列)並將引擎分配給該標籤的方法。

問題

q:如果我提交乙份工作而不指定佇列呢?

a:如果任務儲存庫已分配給佇列,則任務將進入該佇列。如果儲存庫未分配給佇列,則任務將進入系統預設佇列。

q:計畫任務如何處理?

a:可以將計畫工作任務分配給特定佇列。因此,需要花費四個小時才能執行的日常更新工作可以保留在其他作業的單獨佇列中。

q:分布式體系結構是否有任何作用?

a:借助分布式架構,引擎可以位於完全不同的機器上。因此,每天四小時更新可以傳送到其分配的引擎位於不同伺服器上的佇列。

示例設定

假設我有八個引擎,知識和qa團隊設定佇列。可能會這樣設定它:

佇列

白天

夜間

引擎

優先

引擎

優先

世界巡迴演示

世界巡迴演示

1,2,3,4 1

1,2,3,4 1

伺服器遊樂場演示

2,3,4 2

2,3,4 2

支援團隊短期 支援

3,4 3

3,4 3

支援團隊長期 支援

7,8 3

7,8 5

知識團隊 知識

3,4 3

3,4 3

短期測試 qa

短期測試

5,6 4

5,6 3

長期測試 qa

長期測試

7,8 4

3,4,5,6,7,8 4

ps如果qa團隊在夜間在引擎3上開始工作,那麼它會阻止該引擎上的其他工作。緊隨其後建立的知識團隊的工作任務將無法中斷正在執行的工作。但是,一旦qa團隊工作完成並且引擎變為空閒,沒有建立出知識團隊工作任務以外的任務時,知識團隊將會獲得優先權。

佇列和儲存庫不是固定的。知識團隊的成員仍可以將工作提交給支援佇列,而不是他們自己的。

按需變更

這個新的排隊系統非常靈活,因為它可以通過web介面快速輕鬆地進行管理。

但更好的是,您還可以使用api

​​呼叫管理佇列:

這意味著您可以設定乙個預定的程序來在一天中的不同時間重新對映佇列。例如,在下午5點,您會開放更多的引擎直至長期工作,並且在第二天早上8點,為短期工作佇列恢復更多引擎。

結論

對fme server進行微調,以便在最佳時間為整個工作場所提供最好的服務。多個佇列允許更大的靈活性,並且可以將大型工作任務與小型工作任務分開。

伺服器端返回資料處理

json服務端資料接收 通過ajax獲取服務端傳送過來的資料 根據接收到的資料獲取需要的資料 將json格式轉化為物件json.parse d.template 根據物件獲取資料 例子 將獲取到的資料儲存為需要的物件格式 var selectlist function initdata data n...

使用Oracle和伺服器記憶體,資料處理效率對比

在編寫聚合點資料處理過程中,得到如下資料 方式型別為 a 臨時表為公共資料庫表,不停的插入刪除臨時表,獲取分析資料,資料每完成一條,寫入一次 b 臨時表為處理伺服器記憶體中的 datatable 結構,資料寫入採用 buffer 方式,每個比例尺寫入一次 c 每個圖層建立乙個臨時表,生成的資料採用 ...

訊息伺服器和資料庫

訊息伺服器和資料庫 疑問 如果在資料庫裡建一張表,各個欄位和訊息伺服器上的一樣,是否可以取代訊息伺服器?解答 可以。但對這張表的處理,將極複雜,要考慮多執行緒,資料庫讀取時的鎖 閂 另外,這種資料是進行頻繁增刪改查的,有可能效率極差。特別,讀取資料時,不可能太頻繁的讀,總要以三五秒的週期進行讀取,即...