首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >后端进程与计划任务

后端进程与计划任务
EN

Stack Overflow用户
提问于 2012-04-16 09:40:40
回答 3查看 2.2K关注 0票数 0

我有许多后台进程(java应用程序),运行24/7。为了监视这些后端(即检查进程是否没有响应并通过SMS/电子邮件通知),我编写了另一个应用程序。

旧的后端现在在正常的时间间隔记录心跳,这个新应用程序检查它们是否定期执行,并在必要时通知。

现在,我们有两个选择

  • 要么将其作为一个预定任务运行,该任务将在每15分钟后运行,然后在完成其工作后停止运行,或者
  • 将其作为另一个后端进程运行,睡眠时间为15分钟。

我们现在可以预见的问题是,如果这个监视器应用程序进入无响应状态,该怎么办?那么,我的问题是,这两种情况是否有区别,还是两者是相同的?什么样的选择更适合我的案子?

请注意,这是一个特殊情况,与或不一样。

环境: Java,托管在LINUX服务器上

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-16 10:32:00

所谓调度任务,是指由系统调度程序触发,还是作为现有后端进程中的调度线程触发?

要捕获意外的终止或无响应状态,最好是运行单独的进程,而不是线程。但是,一个计划好的线程将为您提供更紧密的与拥有进程的交互,而IPC开销则更少。

我会实现这两个目标。在每个后端进程中维护本地状态的记录,每个进程中有一个预定任务触发一个线程来更新该节点的当前状态。此更新可能相当频繁,因为它将比与单独的进程通信成本更低。

使用单独的“监控应用程序”流程定期收集有关所有后端进程的信息。这种情况不应该经常发生--无论进程是一直在运行,还是由cron作业调度,都是无关紧要的,因为状态保存在每个后端进程中。如果其中一个后端没有响应,此监控应用程序将能够确定响应不足,并执行一些有意义的探测,以确定问题所在。该组件将通知您的SMS/电子邮件实用程序发送报告。

票数 1
EN

Stack Overflow用户

发布于 2012-04-16 09:52:40

我会选择后端进程,因为它可以维护状态,请看一下来自terracotta http://terracotta.org/products/quartz-scheduler的石英调度程序。

它可以适应短暂的情况,您只需要提供一个简单的包装,因此,只要您在quartz.properties文件中正确使用线程,监视器应用程序就应该是健壮的。

票数 0
EN

Stack Overflow用户

发布于 2017-08-24 06:59:34

您可以使用nagios核心作为核心和Naptor来监视应用程序。它很容易设置和嵌入到您的应用程序开发。

您可以在以下链接上查看:https://github.com/agunghakase/Naptor/tree/ver1.0.0

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10171793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档