我把消息放到了如下的hazelcast队列:
hazelcastInstance.getQueue(LOGOUT_ALL_USERS_QUEUE_NAME).add(Void.TYPE);
另一方面,我已经注册了队列监听器:
hazelcastInstance.getQueue(LOGOUT_ALL_USERS_QUEUE_NAME).addItemListener(new ItemListener<Void>() {
@Override
public void itemAdded(ItemEvent<Void> item) {
LOGGER.info("Logout all user signal received");
logoutAllUsers();
}
@Override
public void itemRemoved(ItemEvent<Void> item) {
//
}
}, false);
}
它无法编译。
> Error:(36, 50) java: D:\...\LogoutServiceImpl.java:36:
> addItemListener(com.hazelcast.core.ItemListener<java.lang.Object>,boolean)
> in com.hazelcast.core.ICollection<java.lang.Object> cannot be applied
> to (<anonymous
> com.hazelcast.core.ItemListener<java.lang.Void>>,boolean)
我只想将信号从一个地方传递到另一个地方而没有价值。
hazelcast如何做到这一点?
P.S。
我使用java 6
答案 0 :(得分:0)
问题与
有关hazelcastInstance.getQueue(LOGOUT_ALL_USERS_QUEUE_NAME)
返回IQueue<Object>
。如果将其投放到IQueue<Void>
- 一切正常