我有下一个项目:
基于 Spring(3.2) 的 Web 应用程序(Tomcat 7),在后台我有几个任务。
我有一个队列,其中包含一些要处理的信息。该队列会定期更新(但只是在它为空时)。
此外,我有几个线程定期从这个队列和进程中排队数据。
对于调度,我想使用 ScheduledExecutorService。
我有几个问题\问题:
如何保持这个队列?我认为它应该是全球性的。我应该在某个“持有人”类中使其成为静态吗?这不会是一个糟糕的设计吗?
用 ScheduledExecutorService 初始化这个队列和所有任务的好地方在哪里?ServletContextLoadingListener 是一个好地方吗?有什么方法可以用 Spring 初始化它吗?
如果我需要精确控制消费者线程的数量,是否应该使用多个 ScheduledExecutorService 实例?
ArrayBlockingQueue 对这种情况有好处吗?