You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Jay Kreps (JIRA)" <ji...@apache.org> on 2012/10/31 19:48:11 UTC
[jira] [Created] (KAFKA-597) Refactor KafkaScheduler
Jay Kreps created KAFKA-597:
-------------------------------
Summary: 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
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