2017-05-15 86 views
1

我正在使用「hazelcast.operation.call.timeout.millis = 100」配置超時榛木操作。Hazelcast自定義超時操作

但是在hazelcast啓動時,由於這種配置,某些地圖大小操作正在超時。我只是想在地圖加載後超時,這些操作基本上是地圖獲取操作。有沒有辦法爲這些map.get()操作添加自定義操作超時?

有沒有其他辦法可以完成這項工作?

com.hazelcast.core.OperationTimeoutException: HDMapSizeOperation got rejected before execution due to not starting within the operation-call-timeout of: 100ms. Current time: 2017-05-15 11:41:47.503. Start time: 2017-05-15 11:41:44.189. Total elapsed time: 3314 ms. Invocation{op=com.hazelcast.map.impl.operation.HDMapSizeOperation{serviceName='hz:impl:mapService', identityHash=1941379381, partitionId=0, replicaIndex=0, callId=-24461, invocationTime=1494828707296 (2017-05-15 11:41:47.296), waitTimeout=-1, callTimeout=100, name=blockMap}, tryCount=250, tryPauseMillis=500, invokeCount=11, callTimeoutMillis=100, firstInvocationTimeMs=1494828704189, firstInvocationTime='2017-05-15 11:41:44.189', lastHeartbeatMillis=0, lastHeartbeatTime='1970-01-01 05:30:00.000', target=[192.168.2.204]:5701, pendingResponse={VOID}, backupsAcksExpected=0, backupsAcksReceived=0, connection=null} 
at com.hazelcast.spi.impl.operationservice.impl.InvocationFuture.newOperationTimeoutException(InvocationFuture.java:151) 
at com.hazelcast.spi.impl.operationservice.impl.InvocationFuture.resolve(InvocationFuture.java:99) 
at com.hazelcast.spi.impl.operationservice.impl.InvocationFuture.resolveAndThrowIfException(InvocationFuture.java:75) 
at com.hazelcast.spi.impl.AbstractInvocationFuture.get(AbstractInvocationFuture.java:155) 
at com.hazelcast.spi.impl.operationservice.impl.InvokeOnPartitions.retryFailedPartitions(InvokeOnPartitions.java:143) 
at com.hazelcast.spi.impl.operationservice.impl.InvokeOnPartitions.invoke(InvokeOnPartitions.java:73) 
at com.hazelcast.spi.impl.operationservice.impl.OperationServiceImpl.invokeOnAllPartitions(OperationServiceImpl.java:371) 
at com.hazelcast.map.impl.proxy.MapProxySupport.size(MapProxySupport.java:628) 
at com.hazelcast.map.impl.proxy.MapProxyImpl.size(MapProxyImpl.java:102) 
at it.XXXX.tbx.server.MapLoader.run(MapLoader.java:36) 

問候, Tharinda

回答

4

如果你試圖控制等待的如結果一個map.get;你可以看看像map.getAsync這樣的異步版本。它返回一個未來,你可以控制你想等待一個結果的時間。

不建議修改呼叫超時。