Priest Tomb



Logstash 插件(JRuby)-启动线程

1 写在前面

在写 Logstash 插件的过程中,借鉴和学习到一些 JRuby 的书写技巧,随手记录一下,仅供参考。


混入防转防爬防抄袭声明:本文《Logstash 插件(JRuby)-启动线程》首发且仅发布于没有名字的博客


2 启动线程

在 Logstash 插件中启动线程的目的大概有两种:一是需要多个线程,并行处理接收到的一批 Event,进一步提高效率;另一个则是在主线程运行过程中,由一个子线程定时处理一些事情。

写过的一些插件中,目前用到的都是第二种操作。

2.1 启动 Ruby 线程

Thread.new(@interval) do |interval|
  while @stopping.false? do
    sleep(interval)
    do_something()
  end
end

2.2 启动 Java 线程

java.lang.Thread.new {
  while @stopping.false? do
    sleep(@interval)
    do_something()
  end
}.start