Kafka Scheduler

KafkaScheduler用于处理内部线程 配置文件中的backgroundThreads参数表示线程池大小

KafkaScheduler.scala 中的注释说的明白:

It has a pool of kafka-scheduler- threads that do the actual work.

KafkaScheduler继承了Scheduler  Scheduler 有三个方法:新建调度、终止调度、调度task

// A scheduler for running jobs
trait Scheduler {
  // Initialize this scheduler so it is ready to accept scheduling of tasks
  def startup()
  
  // Shutdown this scheduler. 
  // When this method is complete no more executions of background tasks will occur.
  // This includes tasks scheduled with a delayed execution.
  def shutdown() 

  // Schedule a task
  def schedule(name: String, fun: () => Unit, delay: Long = 0, 
               period: Long = -1, unit: TimeUnit = TimeUnit.MILLISECONDS) 
}


KafkaScheduler内部使用ScheduledThreadPoolExecutor进行调度

构造器三个参数分别是线程数,线程名称前缀和守护线程标记  后面两个都有默认值

class KafkaScheduler(val threads: Int,
                     val threadNamePrefix: String = "kafka-scheduler-",
                     daemon: Boolean = true) extends Scheduler with Logging

每隔一段时间调度运行一次fun函数……  fun方法并没有返回值 schedule使用它的副作用

对 就是这个函数名   什么意思? 谁知道什么意思!  我猜多半是当时不知道叫什么 随意起的名字

val runnable = new Runnable {
    def run() = {
        fun()
    }
}

if (period >= 0)
    executor.scheduleAtFixedRate(runnable, delay, period, unit)
else
    executor.schedule(runnable, delay, unit)




转载于:https://my.oschina.net/darionyaphet/blog/287781

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值