Guest User

Untitled

a guest
Nov 21st, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.19 KB | None | 0 0
  1. @Singleton
  2. public class TaskRunner {
  3. public void doTask () {
  4. try {
  5. System.out.println("performs scheduled task");
  6. } catch (Exception e) {
  7. logger.error("Error performing task. failed with error: {}", e);
  8. }
  9. }
  10. }
  11.  
  12. @Singleton
  13. public class TaskScheduler {
  14.  
  15. private final Runnable runnable;
  16. private final ScheduledExecutorService executorService;
  17. private static final Logger logger = LoggerFactory.getLogger(TaskScheduler.class);
  18.  
  19. @Inject
  20. public TaskScheduler(TaskRunner taskRunner, int initialDelay, int period, String timeUnits) {
  21. this.executorService = Executors.newScheduledThreadPool(1);
  22. this.runnable = taskRunner::doTask;
  23.  
  24. this.scheduledFuture = this.executorService.scheduleAtFixedRate(this.runnable, initialDelay, period,
  25. TimeUnit.valueOf(timeUnits));
  26. }
  27.  
  28. public static void main(String[] args) {
  29. TaskRunner taskRunner = new TaskRunner();
  30. new TaskScheduler(taskRunner);
  31. }
  32. }
  33.  
  34. ScheduledThreadPoolExecutor executor = (ScheduledThreadPoolExecutor) schedulerService;
  35. this.queueSize = executor.getQueue().size();
  36. this.remainingCapacity = executor.getQueue().remainingCapacity();
  37. this.terminated = schedulerService.isTerminated();
  38. this.shutdown = schedulerService.isShutdown();
  39. this.taskCount = executor.getTaskCount();
  40. this.activeTaskCount = executor.getActiveCount();
  41. this.completedTaskCount = executor.getCompletedTaskCount();
  42. this.keepAliveTime = executor.getKeepAliveTime(TimeUnit.SECONDS);
  43. this.coreThreadTimeOut = executor.allowsCoreThreadTimeOut();
  44. this.cancelled = scheduledFuture.isCancelled();
  45. this.delay = scheduledFuture.getDelay(TimeUnit.MINUTES);
  46.  
  47. {
  48. "queueSize": 1,
  49. "remainingCapacity": 2147483647,
  50. "terminated": false,
  51. "shutdown": false,
  52. "taskCount": 2,
  53. "activeTaskCount": 0,
  54. "completedTaskCount": 1,
  55. "keepAliveTime": 0,
  56. "coreThreadTimeOut": false,
  57. "periodic": true,
  58. "cancelled": false
  59. }
  60.  
  61. {
  62. "queueSize": 0,
  63. "remainingCapacity": 2147483647,
  64. "terminated": false,
  65. "shutdown": false,
  66. "taskCount": 2,
  67. "activeTaskCount": 0,
  68. "completedTaskCount": 2,
  69. "keepAliveTime": 0,
  70. "coreThreadTimeOut": false,
  71. "periodic": true,
  72. "cancelled": false
  73. }
Add Comment
Please, Sign In to add comment