@Override public void running(ProgramRunId programRunId, @Nullable String twillRunId) { ImmutableMap.Builder<String, String> properties = ImmutableMap.<String, String>builder() .put(ProgramOptionConstants.PROGRAM_RUN_ID, GSON.toJson(programRunId)) .put(ProgramOptionConstants.LOGICAL_START_TIME, String.valueOf(System.currentTimeMillis())) .put(ProgramOptionConstants.PROGRAM_STATUS, ProgramRunStatus.RUNNING.name()); if (twillRunId != null) { properties.put(ProgramOptionConstants.TWILL_RUN_ID, twillRunId); } programStatePublisher.publish(Notification.Type.PROGRAM_STATUS, properties.build()); }
@Override public void resume(ProgramRunId programRunId) { ImmutableMap<String, String> properties = ImmutableMap.<String, String>builder() .put(ProgramOptionConstants.PROGRAM_RUN_ID, GSON.toJson(programRunId)) .put(ProgramOptionConstants.RESUME_TIME, String.valueOf(System.currentTimeMillis())) .put(ProgramOptionConstants.PROGRAM_STATUS, ProgramRunStatus.RESUMING.name()).build(); programStatePublisher.publish(Notification.Type.PROGRAM_STATUS, properties); }
@Override public void suspend(ProgramRunId programRunId) { programStatePublisher.publish(Notification.Type.PROGRAM_STATUS, ImmutableMap.<String, String>builder() .put(ProgramOptionConstants.PROGRAM_RUN_ID, GSON.toJson(programRunId)) .put(ProgramOptionConstants.SUSPEND_TIME, String.valueOf(System.currentTimeMillis())) .put(ProgramOptionConstants.PROGRAM_STATUS, ProgramRunStatus.SUSPENDED.name()) .build() ); }
@Override public void suspend(ProgramRunId programRunId) { programStatePublisher.publish(Notification.Type.PROGRAM_STATUS, ImmutableMap.<String, String>builder() .put(ProgramOptionConstants.PROGRAM_RUN_ID, GSON.toJson(programRunId)) .put(ProgramOptionConstants.SUSPEND_TIME, String.valueOf(System.currentTimeMillis())) .put(ProgramOptionConstants.PROGRAM_STATUS, ProgramRunStatus.SUSPENDED.name()) .build() ); }
@Override public void running(ProgramRunId programRunId, @Nullable String twillRunId) { ImmutableMap.Builder<String, String> properties = ImmutableMap.<String, String>builder() .put(ProgramOptionConstants.PROGRAM_RUN_ID, GSON.toJson(programRunId)) .put(ProgramOptionConstants.LOGICAL_START_TIME, String.valueOf(System.currentTimeMillis())) .put(ProgramOptionConstants.PROGRAM_STATUS, ProgramRunStatus.RUNNING.name()); if (twillRunId != null) { properties.put(ProgramOptionConstants.TWILL_RUN_ID, twillRunId); } programStatePublisher.publish(Notification.Type.PROGRAM_STATUS, properties.build()); }
@Override public void resume(ProgramRunId programRunId) { ImmutableMap<String, String> properties = ImmutableMap.<String, String>builder() .put(ProgramOptionConstants.PROGRAM_RUN_ID, GSON.toJson(programRunId)) .put(ProgramOptionConstants.RESUME_TIME, String.valueOf(System.currentTimeMillis())) .put(ProgramOptionConstants.PROGRAM_STATUS, ProgramRunStatus.RESUMING.name()).build(); programStatePublisher.publish(Notification.Type.PROGRAM_STATUS, properties); }
private void stop(ProgramRunId programRunId, ProgramRunStatus runStatus, @Nullable Throwable cause) { ImmutableMap.Builder<String, String> properties = ImmutableMap.<String, String>builder() .put(ProgramOptionConstants.PROGRAM_RUN_ID, GSON.toJson(programRunId)) .put(ProgramOptionConstants.END_TIME, String.valueOf(System.currentTimeMillis())) .put(ProgramOptionConstants.PROGRAM_STATUS, runStatus.name()); if (cause != null) { properties.put(ProgramOptionConstants.PROGRAM_ERROR, GSON.toJson(new BasicThrowable(cause))); } programStatePublisher.publish(Notification.Type.PROGRAM_STATUS, properties.build()); }
private void stop(ProgramRunId programRunId, ProgramRunStatus runStatus, @Nullable Throwable cause) { ImmutableMap.Builder<String, String> properties = ImmutableMap.<String, String>builder() .put(ProgramOptionConstants.PROGRAM_RUN_ID, GSON.toJson(programRunId)) .put(ProgramOptionConstants.END_TIME, String.valueOf(System.currentTimeMillis())) .put(ProgramOptionConstants.PROGRAM_STATUS, runStatus.name()); if (cause != null) { properties.put(ProgramOptionConstants.PROGRAM_ERROR, GSON.toJson(new BasicThrowable(cause))); } programStatePublisher.publish(Notification.Type.PROGRAM_STATUS, properties.build()); }
/** * If executor service isn't initialized or if its shutdown * create a new exector service and schedule a heartbeat thread */ private void scheduleHeartBeatThread() { if (scheduledExecutorService == null || scheduledExecutorService.isShutdown()) { scheduledExecutorService = Executors.newSingleThreadScheduledExecutor(Threads.createDaemonThreadFactory("program-heart-beat")); scheduledExecutorService.scheduleAtFixedRate( () -> { Map<String, String> properties = new HashMap<>(); properties.put(ProgramOptionConstants.PROGRAM_RUN_ID, GSON.toJson(programRunId)); properties.put(ProgramOptionConstants.HEART_BEAT_TIME, String.valueOf(System.currentTimeMillis())); // publish as heart_beat type, so it can be handled appropriately at receiver messagingProgramStatePublisher.publish(Notification.Type.PROGRAM_HEART_BEAT, properties); LOG.trace("Sent heartbeat for program {}", programRunId); }, heartBeatIntervalSeconds, heartBeatIntervalSeconds, TimeUnit.SECONDS); } }
/** * If executor service isn't initialized or if its shutdown * create a new exector service and schedule a heartbeat thread */ private void scheduleHeartBeatThread() { if (scheduledExecutorService == null || scheduledExecutorService.isShutdown()) { scheduledExecutorService = Executors.newSingleThreadScheduledExecutor(Threads.createDaemonThreadFactory("program-heart-beat")); scheduledExecutorService.scheduleAtFixedRate( () -> { Map<String, String> properties = new HashMap<>(); properties.put(ProgramOptionConstants.PROGRAM_RUN_ID, GSON.toJson(programRunId)); properties.put(ProgramOptionConstants.HEART_BEAT_TIME, String.valueOf(System.currentTimeMillis())); // publish as heart_beat type, so it can be handled appropriately at receiver messagingProgramStatePublisher.publish(Notification.Type.PROGRAM_HEART_BEAT, properties); LOG.trace("Sent heartbeat for program {}", programRunId); }, heartBeatIntervalSeconds, heartBeatIntervalSeconds, TimeUnit.SECONDS); } }
@Override public void start(ProgramRunId programRunId, ProgramOptions programOptions, @Nullable String twillRunId, ProgramDescriptor programDescriptor) { ImmutableMap.Builder<String, String> properties = ImmutableMap.<String, String>builder() .put(ProgramOptionConstants.PROGRAM_RUN_ID, GSON.toJson(programRunId)) .put(ProgramOptionConstants.PROGRAM_STATUS, ProgramRunStatus.STARTING.name()) .put(ProgramOptionConstants.USER_OVERRIDES, GSON.toJson(programOptions.getUserArguments().asMap())) .put(ProgramOptionConstants.SYSTEM_OVERRIDES, GSON.toJson(programOptions.getArguments().asMap())) .put(ProgramOptionConstants.PROGRAM_DESCRIPTOR, GSON.toJson(programDescriptor)); if (twillRunId != null) { properties.put(ProgramOptionConstants.TWILL_RUN_ID, twillRunId); } programStatePublisher.publish(Notification.Type.PROGRAM_STATUS, properties.build()); }
@Override public void start(ProgramRunId programRunId, ProgramOptions programOptions, @Nullable String twillRunId, ProgramDescriptor programDescriptor) { ImmutableMap.Builder<String, String> properties = ImmutableMap.<String, String>builder() .put(ProgramOptionConstants.PROGRAM_RUN_ID, GSON.toJson(programRunId)) .put(ProgramOptionConstants.PROGRAM_STATUS, ProgramRunStatus.STARTING.name()) .put(ProgramOptionConstants.USER_OVERRIDES, GSON.toJson(programOptions.getUserArguments().asMap())) .put(ProgramOptionConstants.SYSTEM_OVERRIDES, GSON.toJson(programOptions.getArguments().asMap())) .put(ProgramOptionConstants.PROGRAM_DESCRIPTOR, GSON.toJson(programDescriptor)); if (twillRunId != null) { properties.put(ProgramOptionConstants.TWILL_RUN_ID, twillRunId); } programStatePublisher.publish(Notification.Type.PROGRAM_STATUS, properties.build()); }