我正在用Java编写简单的webapp(仅用于教育用途),它允许管理员手动执行一些后台维护工作(例如,通过Runtime.exec在系统上执行某些进程 - 实际上不相关)。后台作业ofc在自己的线程中运行并输出一些信息。我想知道,通过网络界面将输出传递给用户的正确方法是什么?例如,管理员在几分钟后返回,并想看看他跑的工作的输出。更重要的是,如何在集群环境中解决这个问题,其中作业在单个实例上运行,但输出查看在另一个实例上发生?有没有已知的良好做法?
我猜,在内存中的非群集env输出缓冲区就足够了。但是在集群环境中,我只能想到该输出的db / file store,但这很麻烦(以后必须删除临时资源等)。
提前致谢。
答案 0 :(得分:1)
我建议使用一个数据库(虽然我认为它只是一个临时资源)。
无论您使用何种存储介质,都需要在应用程序服务器群集中共享,因此需要在某些时候进行整理。在其他任何事情上,对数据库执行内务管理并不困难。
此外,这些“临时”资源有一种随着时间的推移而变得永久的习惯,因为背景过程的结果具有更大的意义(在审计人员眼中等),尽管在您的情况下不太可能