我被要求为我的camunda引擎/bpmn工具创建Spring启动执行器。这样我们就可以通过springactuator公开各种应用程序的健康检查和诊断。这应该扩展到公开camunda的运行状况、配置和度量。你知道怎么做吗?
qfe3c7zg1#
我已经能够定制现有的healthcheck执行器。为希望在这些项目中自定义的人共享下面的代码。
@Component public class X extends AbstractHealthIndicator { @Autowired public JobExecutor jobExecutor; @Override protected void doHealthCheck(Builder builder) throws Exception { boolean active = jobExecutor.isActive(); if (active) { builder = builder.up(); } else { builder = builder.down(); } builder.withDetail("jobExecutor", healthDetails(jobExecutor)); } private Details healthDetails(JobExecutor jobExecutor) { final DetailsBuilder builder = Details.builder().name(jobExecutor.getName()) .lockOwner(jobExecutor.getLockOwner()).lockTimeInMillis(jobExecutor.getLockTimeInMillis()) .maxJobsPerAcquisition(jobExecutor.getMaxJobsPerAcquisition()) .waitTimeInMillis(jobExecutor.getWaitTimeInMillis()); for (ProcessEngineImpl processEngineImpl : jobExecutor.getProcessEngines()) { builder.processEngineName(processEngineImpl.getName()); } return builder.build(); } }
a5g8bdjr2#
假设您使用的是camunda spring boot starter:starter附带了processengine和jobecutor的两个默认运行状况指示器,请看一下:https://github.com/camunda/camunda-bpm-spring-boot-starter/tree/master/starter/src/main/java/org/camunda/bpm/spring/boot/starter/actuator
@Override protected void doHealthCheck(Builder builder) throws Exception { boolean active = jobExecutor.isActive(); if (active) { builder = builder.up(); } else { builder = builder.down(); } builder.withDetail("jobExecutor", Details.from(jobExecutor)); }
这应该给你一个如何实现Spring的想法 AbstractHealthIndicator ,访问camunda组件并将其用于健康检查。
AbstractHealthIndicator
2条答案
按热度按时间qfe3c7zg1#
我已经能够定制现有的healthcheck执行器。为希望在这些项目中自定义的人共享下面的代码。
a5g8bdjr2#
假设您使用的是camunda spring boot starter:starter附带了processengine和jobecutor的两个默认运行状况指示器,请看一下:
https://github.com/camunda/camunda-bpm-spring-boot-starter/tree/master/starter/src/main/java/org/camunda/bpm/spring/boot/starter/actuator
这应该给你一个如何实现Spring的想法
AbstractHealthIndicator
,访问camunda组件并将其用于健康检查。