現在、注文オブジェクトがあります。orderId、state、price という 3 つのフィールドがあると想定できます。
class Order
{
public int orderId;
public String state;
public int filled;
}
注文の有効期間中、状態と約定数量は変化します。フィールドの変更があるたびに、次の方法でそれを esper ランタイムにプッシュします。
Order o .....;
epService.EPRuntime.SendEvent(o);
SendEvent を介して注文が追加されるたびに、以前の注文オブジェクトとは異なるオブジェクトになります (つまり、参照ではありません)。これは、古い注文オブジェクトがステートメントのストリームに存在しなくなったことを意味します。
以下のようなステートメントは、ストリーム内の注文の最新バージョンでのみ動作するようにします。つまり、概念的には、ストリーム内の各物理注文に対して 1 つの注文オブジェクトのみが存在する必要があります。
"select filled from OrderStream.win:keepall() where orderId= 1234"
古い Order オブジェクトを削除する方法はありますか? 参照を使用して、古い注文オブジェクトを更新してから再度プッシュすることはできますか? 別の方法はありますか??
私は現在使用していますNesper