2016-10-17 15 views
1

hazelcast構成を機能していないが、私が追い出しアクション用に設定リスナーを持っているHazelCast MAX-アイドル秒:追い出しリスナーは、マップの

<map name="test"> 
     <max-idle-seconds>120</max-idle-seconds> 
    <entry-listeners> 
     <entry-listener include-value="true" local="false">com.test.listener.SessionListener</entry-listener> 
    </entry-listeners> 
    </map> 

です。 リスナーは、排除アクションを一貫して捕らえることができません。 Hazelcastバージョン:3.6.5

リスナクラスの実装:以下

public class SessionListener implements EntryListener<String, Object> { 
@Override 
public void entryEvicted(EntryEvent<String, Object> evictData) { 

    try { 
     Session sessionObjValue = (Session) evictData.getOldValue(); 
     String sessionId = sessionObjValue.getSessionId(); 
     String userName = sessionObjValue.getUsername(); 

     JSONObject inputJSON = new JSONObject(); 
     inputJSON.put(Constants.SESSIONID, sessionId); 
     inputJSON.put(Constants.USER_NAME, userName); 
     //Operations to be performed based on the JSON Value 


    } catch (Exception exception) { 
     LOGGER.logDebug(Constants.ERROR, methodName, exception.toString()); 
    } 

} 
+0

あなたは 'com.test.listener.SessionListener'クラスの実装を投稿することができますか? –

+0

質問にリスナークラスの実装を追加しました。おかげさまで – Vishnu

答えて

0

推奨です:

  1. マップの設定でEviction policy構成を含みます。現在、追い出しは最大アイドル秒だけに基づいて行われています。
  2. これにより、次に他のインターフェイスを拡張EntryListenerインタフェースからすべてのメソッドを実装します。
  3. 追い出しイベントはまた、有効期限の間に呼び出されますけれども、明示的に有効期限のイベントをキャッチするために、またEntryExpiredListenerリスナーを実装します。

サンプルコード:

public class MapEntryListernerTest implements EntryListener, EntryExpiredListener { 


    @Override 
    public void entryAdded(EntryEvent event) { 

    } 

    @Override 
    public void entryEvicted(EntryEvent event) { 

    } 

    @Override 
    public void entryRemoved(EntryEvent event) { 

    } 

    @Override 
    public void entryUpdated(EntryEvent event) { 

    } 

    @Override 
    public void mapCleared(MapEvent event) { 

    } 

    @Override 
    public void mapEvicted(MapEvent event) { 

    } 

    @Override 
    public void entryExpired(EntryEvent event) { 

    } 
    } 
+0

Thanks.Issue:リスナーは、時間のconsistently.Mostが動作していない、リスナーが – Vishnu

+0

はあなたが複製するテストクラスを書くことができます動作していないアイドルタイムアウト後のマップ内の特定のキーのイベントや追い出しをキャッチすることができません立ち退かせます問題?しかし追い出しリスナーは、事前に定義されたtimeout.Listenerは、いくつかの時間後にそのイベントをキャッチすることができた後、そのイベントをキャッチすることができません:多くの試行錯誤の後 –

+1

は、値が追い出さなっている、ことを見出しました。 – Vishnu

関連する問題