谢谢banq大哥!我准备采用JNDI的方案试试。
至于第二种方法,使用数据库作为中介,在这个系统中可能会有一定难度同时可能会有效率的影响。因为在系统中,队列中每一个元素保存的信息是比较复杂的。
队列中的每一个元素是当前正在运行的报表请求的抽象,姑且称之为一个job吧。每个job可能会于多个用户请求相对应(这多个用户请求报表的条件相同)。这个可以通过观察者模式来解决。当这个job运行完毕,需要通知这些用户请求(观察者),让这些请求进行下一步的动作。
如此一来,不仅要在数据库中保存job的信息,同时还要保存job的观察者信息。是不是复杂了点?呵呵。