問題タブ [nesper]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 正規表現に関する NEsper の問題
私はここでしばらく立ち往生しており、正規表現を使用したNEsperの不適切な動作に問題があるようです。問題を再現するための簡単なプロジェクトを作成しました。これはgithubから入手できます。
簡単に言うと、NEsper を使用すると、メッセージ (イベント) を一連のルール (SQL に似たもの) を通して送り込むことができます。イベントがルールに一致する場合、NEsper はアラートを発します。私のアプリケーションでは、正規表現を使用する必要がありますが、これは機能していないようです。
問題ステートメントを作成する両方
の方法を試しましたが、一致イベントは発生しませんが、正規表現と入力は .NET Regex クラスによって一致しています。正規表現 ("\b\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}\b") の代わりに、一致する値 (" 127.0.0.5") をステートメントに追加すると、イベントは正常に発生します。 createPattern
createEPL
質問
NEsper 正規表現マッチングのサンプルを教えてくれる人はいますか? または、コード内の私のばかげた間違いを指摘してください。
コード
これは私の NEsper デモ ラッパー クラスです。
次に、サブスクライバーと DummyType
そしてNUnitテスト。1 つのコメントが nesper.AddStatementFromRegExp(regexp); の場合。行と行のコメントを外し//nesper.AddStatementFromRegExp(input);
てから、テストに合格します。ただし、そこには正規表現が必要です。
esper - エスパー発生エピソード
Esper を使用してイベントのエピソードを生成したいと考えています。各時間帯のロボットの動きの変化を検出しようとしていますが、どのように実装するのが最適なのか疑問に思っていました。
イベントからエピソードを生成するためのルールは次のようになります。
- ロボットの新しいイベント時間 (例: 7 秒、ロボット A) が、同じロボットの最新のイベント (例: 3 秒、ロボット A)よりも 3 秒以上長い場合、新しいイベントは新しいエピソードに属します。
- 各エピソードは1 つのロボットのみを表す必要があります (例: 2 秒、ロボット A と 3 秒、ロボット B は 2 つのエピソードを出力する必要があります)。
入力データ:
出力データは次のようになります。
入力データ:
出力データは次のようになります。
提案を提供してください。各ロボットに 1 つずつ、複数のリスナーを使用してエピソードを作成しようとしましたが、動作しますが、単一の EPL ステートメントを使用してそれを実行しようとしています。私は試しwin:time_accum(3sec) group by robot
ましたが、2番目の出力例:
イベントが発生するたびにタイム ウィンドウがシフトされるため、システムはイベント 4 がイベント 3 のために 3 秒未満であると認識します。ロボットごとに固有のタイム ウィンドウを作成するにはどうすればよいですか?
ご提案いただきありがとうございます。どんな助けでも大歓迎です。
esper - ストリームから要素を削除するにはどうすればよいですか
現在、注文オブジェクトがあります。orderId、state、price という 3 つのフィールドがあると想定できます。
注文の有効期間中、状態と約定数量は変化します。フィールドの変更があるたびに、次の方法でそれを esper ランタイムにプッシュします。
SendEvent を介して注文が追加されるたびに、以前の注文オブジェクトとは異なるオブジェクトになります (つまり、参照ではありません)。これは、古い注文オブジェクトがステートメントのストリームに存在しなくなったことを意味します。
以下のようなステートメントは、ストリーム内の注文の最新バージョンでのみ動作するようにします。つまり、概念的には、ストリーム内の各物理注文に対して 1 つの注文オブジェクトのみが存在する必要があります。
古い Order オブジェクトを削除する方法はありますか? 参照を使用して、古い注文オブジェクトを更新してから再度プッシュすることはできますか? 別の方法はありますか??
私は現在使用していますNesper
nesper - 私のwinforms app.configにイベントタイプを追加するネスパー
app.config ファイルで複数のイベント タイプを定義することに関心がありますが、デフォルトではロードされないようです。私が間違っていることはありますか?イベント タイプが 内に存在しませんcom.espertech.esper.client.Configuration
。
c# - Nesper - MarketDepth.std.unique(key).win:time_batch(500 ミリ秒) と MarketDepth.win:time_batch(500 ミリ秒).std:unique(key) の違い
で次のステートメントを実行することの違いは何ですかNesper
MarketDepth.std.unique(key).win:time_batch(500 msec)
対MarketDepth.win:time_batch(500 msec).std:unique(key)
最初のものはすべてのイベントを一意のキーでバッチ処理し、500 ミリ秒ごとにディスパッチしますか? 2 番目はすべてのイベントをバッチ処理し、すべての一意のキーを 500 ミリ秒ごとにディスパッチしますか?
output every 500 msec
を使用する代わりにコマンドを使用するのはtime_batch
どうですか?どんな助けでも大歓迎です。
esper - Nesper エンジンは常に最初に Nesper.dll から型をロードしようとします
エンジンに新しいタイプを追加しようとするたびnesper
に、ネスパー エンジンで次の例外がスローされます。
エンジンは例外を食べ、読み込まれた各アセンブリを反復処理するときに、アセンブリで適切な型を見つけます。
nesper が最初に nesper.dll 内の型を検索しないようにする方法はありますか?