1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.core.provisioning.java.job;
20
21 import java.lang.management.ManagementFactory;
22 import org.apache.syncope.common.lib.info.SystemInfo;
23 import org.quartz.JobExecutionContext;
24 import org.quartz.JobExecutionException;
25 import org.springframework.context.ApplicationEventPublisher;
26
27
28
29
30 public class SystemLoadReporterJob extends AbstractInterruptableJob {
31
32 protected static final Integer MB = 1024 * 1024;
33
34 protected final ApplicationEventPublisher publisher;
35
36 public SystemLoadReporterJob(final ApplicationEventPublisher publisher) {
37 this.publisher = publisher;
38 }
39
40 @Override
41 public void execute(final JobExecutionContext context) throws JobExecutionException {
42 SystemInfo.LoadInstant instant = new SystemInfo.LoadInstant();
43
44 instant.setSystemLoadAverage(ManagementFactory.getOperatingSystemMXBean().getSystemLoadAverage());
45
46 instant.setUptime(ManagementFactory.getRuntimeMXBean().getUptime());
47
48 Runtime runtime = Runtime.getRuntime();
49 instant.setTotalMemory(runtime.totalMemory() / MB);
50 instant.setMaxMemory(runtime.maxMemory() / MB);
51 instant.setFreeMemory(runtime.freeMemory() / MB);
52
53 publisher.publishEvent(instant);
54 }
55 }