java - 集群环境下后台作业的输出

标签 java background jobs cluster-computing

我正在用Java编写简单的Web应用程序(仅用于教育目的),它允许管理员手动执行一些后台维护作业(例如通过Runtime.exec在系统上执行一些进程 - 它实际上不相关)。后台作业 ofc 在其自己的线程中运行并输出一些信息。我想知道,通过网络界面将该输出传递给用户的正确方法是什么?例如,管理员在几分钟后返回,并想要查看他运行的作业的输出。更重要的是,如何在集群环境中解决这个问题,其中作业在单个实例上运行,但输出查看发生在另一个实例上?是否有任何已知的良好实践?

我想,在非集群环境中,内存中的输出缓冲区就足够了。但在集群环境中,我只能想到该输出的数据库/文件存储,但这很麻烦(临时资源必须稍后删除等)。

提前致谢。

最佳答案

我建议使用数据库(尽管我同意你的观点,它只是一个临时资源)。

无论您使用什么存储介质,都需要在应用程序服务器集群之间共享,因此需要在某个时候进行整理。数据库对其他任何东西执行内务管理并不困难。

此外,这些“临时”资源随着时间的推移会变得永久,因为后台过程的结果变得更加重要(在审计员等看来),尽管这在您的情况下不太可能

关于java - 集群环境下后台作业的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6330033/

相关文章:

java - REST API 使用动态 JSON

wpf - WPF在触发器中设置边框背景

ruby-on-rails - Sidekiq 作业已安排,未运行,只是消失了

Oracle:允许每个模式控制一些作业

shell - (shell 脚本 - qsub)在下一个命令之前等待提交的作业完成

java - 关于覆盖变量的地方有点困惑

java - 检测 JPanel 何时移动

java - 有没有一种方法可以让一个具有泛型类型的接口(interface)扩展另一个具有 Java 中另一个泛型类型的接口(interface)?

CSS 圆 table Angular ,渐变背景

ios - Swift 3 - 即使应用程序在后台运行功能