Mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jay Kreps (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (KAFKA-597) Refactor KafkaScheduler
Date Tue, 04 Dec 2012 05:33:59 GMT

     [ 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-v1.patch

This patch refactors the scheduler as described above except that I didn't implement task
cancelation.

It also converts LogManagerTest to use the new MockScheduler.
                
> 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
>
>
> 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

Mime
View raw message