2013-11-22 40 views
0

我有一個QuickFIX發起者,它接收頻繁的市場數據更新。
儘管我儘可能快地處理每個更新,但我仍然擔心回調。
可以說,QuickFIX調用了我的回調函數,當我正在處理它時,在上一次調用進行之前它又被稱爲我的函數。在這種情況下會發生什麼?是否保證我將被召喚下一個電話或引擎可以跳過它,因爲前一個電話仍在繼續?
謝謝QuickFIX客戶端中的回調是否保證被調用?

回答

1

如果郵件沒有格式錯誤,那麼是的,每收到一條消息都應該觸發回調。

(如果它是畸形的,發動機會自動拒絕該消息不會傳遞到您的應用程序代碼。)

進入的消息實際上是收集在隊列中,而你正在處理他們。出於這個原因,您不應該在回調中執行耗時的操作。如果你有一些冗長的處理,你應該派遣它到另一個線程,以避免隊列備份。