2017-07-04 48 views
1

我最近開始使用QuickFIX/J庫來使用FIX協議傳送實時報告消息並將其發送到APA(Approved Publication Arrangement)服務。SocketInitiator的隊列容量使用(QuickFIX/J)

SocketInitiator構造函數中的參數之一是queueCapacity,但不幸的是文檔中關於其用法的信息不多。我可以看到它用於確定SocketInitiator異步處理消息的內部隊列的大小。如果未通過構造函數提供,則默認值設置爲10000。

我想知道在這裏應該使用什麼值是否有任何指導,10000是否「足夠好」,如果達到隊列容量最大值會發生什麼。

回答

2

執行SingleThreadedEventHandlingStrategy in 1.6.3時使用的隊列是java.util.concurrent.LinkedBlockingQueue

使用的構造函數是public LinkedBlockingQueue(int capacity),它創建了一個固定寬度的隊列。如果達到最大容量並且隊列上的SessionMessageEvent實例爲put,則線程將置入事件塊直到隊列中的空間變得可用(即,直到隊列中的事件已被處理)。

我想冒險猜測,並說10000使用QuickFIX/J的情況下99.9%就足夠了。

+0

感謝@TT爲您的答案。我這麼想,但我不確定10k是否足夠處理傳入和傳出的管理員和應用程序消息。 –