This project demonstrates the tracking of scheduled jobs using Spring AOP.
The tracking is fairly simple. TheScheduledJobTrackingAspect invokes every method with anScheduled annotation and writes the start and end of the method into theScheduledJobTracker.A UUID is assigned to the job upon start, since a single job can run multiple times at once.
This is just a project demonstrating the tracking. I am considering to build a library that can be included in any spring boot project to enable tracking of scheduled tasks.
[ {"className":"com.example.demo.ScheduledJob","methodName":"println","fixedRate":5000,"runs": [ {"uuid":"c5ca5c73-f1f6-4ced-a911-de0e43a78d78","startedAt":"2018-05-15T23:38:11.177Z","endedAt":"2018-05-15T23:38:11.182Z","exception":null,"duration":"PT0.005S" }, {"uuid":"2dd54fc3-8753-41c1-91d2-a7ec33fda0e8","startedAt":"2018-05-15T23:38:16.169Z","endedAt":"2018-05-15T23:38:16.169Z","exception":null,"duration":"PT0S" }, {"uuid":"6be5d3ad-924e-4aa6-aef8-a4b837b3e67f","startedAt":"2018-05-15T23:38:21.170Z","endedAt":"2018-05-15T23:38:21.170Z","exception":null,"duration":"PT0S" }, {"uuid":"72dc2d85-d2f1-4875-9381-3d26f6c6512c","startedAt":"2018-05-15T23:38:26.169Z","endedAt":"2018-05-15T23:38:26.169Z","exception":null,"duration":"PT0S" }, {"uuid":"e4f635ee-625b-4618-84ee-0cb0c2aa210e","startedAt":"2018-05-15T23:38:31.169Z","endedAt":"2018-05-15T23:38:31.169Z","exception":null,"duration":"PT0S" } ],"status":"Idle","averageDurationInMs":1,"lastDurationInMs":0,"lastRunStarted":"2018-05-15T23:38:31.169Z","lastRunEnded":"2018-05-15T23:38:31.169Z" }]