下面是我试图使用Jersey1.8和Java 6编写的基本方法。queue to be processed once the cache is updated }有时,该方法充当基本REST服务,但如果正在更新缓存,则一旦更新缓存,传入的请求应该转到要处理的队列。我想过尝试将整个HttpServletRequest添加到队列中,但是在返回信息之前它会阻塞,所有传入的请求都应该在缓存更新时添加到队列中。当服务启动时,
在docs ()中,提到缓存队列上的作业可以由提供负载平衡替代方法的工作网格来处理。
实现在分区缓存(分布式阻塞队列)上对GridRunnable作业进行队列的生产者。我不得不使用分区队列(因为根据定义,本地队列不适合多网格访问)。实现一个使用者,该使用者在启动时生成n个侦听器线程,这些侦听器线程总是阻塞队列中的作业,从队列中消费( next ()操作)作业并将其提交给
我附加了一个分析器,我可以立即看到这个问题,每隔n分钟线程数量就会出现峰值,然后在几秒钟后它又恢复正常,在接下来的n分钟内一切正常。当线程峰值出现时,我对jvm进行了线程转储,我可以很容易地看到有大量的等待线程。但从那里我真的不能确定是什么导致了这种情况-参见下面的线程转储的示例输出。java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:234)
at java.ba