通过 hazelcast 传递信号
pass signal through hazelcast
我像这样将消息放入 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.
我用java6
问题与
有关
hazelcastInstance.getQueue(LOGOUT_ALL_USERS_QUEUE_NAME)
returnsIQueue<Object>
。如果将其转换为 IQueue<Void>
- 一切正常
我像这样将消息放入 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.
我用java6
问题与
有关hazelcastInstance.getQueue(LOGOUT_ALL_USERS_QUEUE_NAME)
returnsIQueue<Object>
。如果将其转换为 IQueue<Void>
- 一切正常