[ https://issues.apache.org/jira/browse/KAFKA-597?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jay Kreps updated KAFKA-597: ---------------------------- Attachment: KAFKA-597-v6.patch Attached patch v6, which fixes Joel's comments-- - Formatting issue - Scaladoc issue - Changed shutdownNow to shutdown - But leaves daemon as the defualt > Refactor KafkaScheduler > ----------------------- > > Key: KAFKA-597 > URL: https://issues.apache.org/jira/browse/KAFKA-597 > Project: Kafka > Issue Type: Bug > Affects Versions: 0.8.1 > Reporter: Jay Kreps > Priority: Minor > Attachments: KAFKA-597-v1.patch, KAFKA-597-v2.patch, > KAFKA-597-v3.patch, KAFKA-597-v4.patch, KAFKA-597-v5.patch, KAFKA-597-v6.patch > > > It would be nice to cleanup KafkaScheduler. Here is what I am thinking > Extract the following interface: > trait Scheduler { > def startup() > def schedule(fun: () => Unit, name: String, delayMs: Long = 0, periodMs: > Long): Scheduled > def shutdown(interrupt: Boolean = false) > } > class Scheduled { > def lastExecution: Long > def cancel() > } > We would have two implementations, KafkaScheduler and MockScheduler. > KafkaScheduler would be a wrapper for ScheduledThreadPoolExecutor. > MockScheduler would only allow manual time advancement rather than using the > system clock, we would switch unit tests over to this. > This change would be different from the existing scheduler in a the following > ways: > 1. Would not return a ScheduledFuture (since this is useless) > 2. shutdown() would be a blocking call. The current shutdown calls, don't > really do what people want. > 3. We would remove the daemon thread flag, as I don't think it works. > 4. It returns an object which let's you cancel the job or get the last > execution time. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira