phet commented on code in PR #3998:
URL: https://github.com/apache/gobblin/pull/3998#discussion_r1675358208


##########
gobblin-service/src/main/java/org/apache/gobblin/service/modules/orchestration/DagActionReminderScheduler.java:
##########
@@ -192,4 +171,44 @@ public static Trigger 
createReminderJobTrigger(DagActionStore.LeaseParams leaseP
         .startAt(new Date(getCurrentTimeMillis.get() + reminderDurationMillis))
         .build();
   }
+
+  public class ReminderJobFactory implements JobFactory {
+    @Override
+    public Job newJob(TriggerFiredBundle bundle, Scheduler scheduler) {
+      return new ReminderJob();
+    }
+  }
+
+  /**
+   * Class used to store information regarding a pending dagAction that needs 
to be revisited at a later time
+   * by {@link DagManagement} interface to re-attempt a lease on if it has not 
been completed by the previous owner.
+   * These jobs are scheduled and used by the {@link 
DagActionReminderScheduler}.
+   */
+  public class ReminderJob implements Job {

Review Comment:
   I'm not convinced the factory is actually that related to the 
`DagActionReminderScheduler`.  I was more accepting the compromise that it 
could be one way for the latter to "share" its `DagManagement` with the many 
`ReminderJob`s.  I was more inclined as well, given there's only one factory 
instance.
   
   but, TBH I do find it preferable for the `ReminderJobFactory` also to be 
`static` and with a `private final DagManagement` (initialized by 
`@RequiredArgsConstructor`).  that would be created as:
   ```
       this.quartzScheduler.setJobFactory(new 
ReminderJobFactory(dagManagement));
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to