通过hazelcast传递信号

时间:2016-02-25 08:40:01

标签: java message-queue 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。

我使用java 6

1 个答案:

答案 0 :(得分:0)

问题与

有关
hazelcastInstance.getQueue(LOGOUT_ALL_USERS_QUEUE_NAME)

返回IQueue<Object>。如果将其投放到IQueue<Void> - 一切正常