開發解決方案
這個解決方案的每個部分都已使用 Java 實行,並使用 Maven 擷取所需的相依性 (由 POM 檔案定義)。它包括一個簡單的 Shell 命令檔,透過呼叫 Maven 來編譯和執行程式碼來執行應用程式。
在執行命令檔之前,您需要修改每個案例的 Environment 類別,以定義適當的連線詳細資訊;例如,佇列 OCID、建置區域等等。對於函數與微服務,因為程式碼是在容器內執行,這需要執行一些額外步驟。儲存區域中的讀我檔案描述包裝容器內 JAR 所需的步驟。在部署之前,函數與 OKE 代管的微服務皆位於容器登錄 (OCIR) 中。
量身訂做產生器代碼
產生器實行 (
com.demo.samples.basic.QueueProducer) 非常簡單,由 main 方法與兩個額外方法組成,可用來協助產生訊息內容。main 方法會建立連線與傳輸物件,然後進入無限迴圈,以建立新訊息並加以傳送。若要修改有效負載 (Payload) 方法,您只需修改 prepareMessage。目前,這個方法會建立一個具有 GUID 的簡單訊息,然後利用 OCI Queue 讓 API 一次傳送 20 則訊息。
量身打造消費者代碼
用戶 (
com.demo.consumer.QueueConsumer) 可從 OKE 組態的環境變數中植入其組態。這樣可以將用戶重新設定為不同的佇列非常容易。大量工作會以 main 方法執行,只要它具有佇列連線,就會執行訊息要求。呼叫 prepareGetMessageRequest 的協助程式方法會建立訊息要求本身。此方法可識別特定佇列,並設定持續時間 prepareGetMessageRequeston 將等待回應 (允許您設定長期輪詢) 以及可傳回的訊息數目上限 (最多 20)。
擷取訊息之後,
由於
processMessage 方法就會加以處理。
注意:
在這個播放手冊中,這個處理作業只是進入睡眠模式,雖然您應該瞭解實際的應用程式可能需要一些時間來處理訊息 。processMessage 方法會套用執行緒休眠來模擬後端訊息處理工作負載,因此您會看到調整機制工作。處理所有收到的訊息後,「佇列」會被告知刪除。