Plugin Helper: Timer
The timer plugin helper manages event timers.
Here is an example:
require 'fluent/plugin/input'
module Fluent::Plugin
class ExampleInput < Input
Fluent::Plugin.register_input('example', self)
# 1. Load timer helper
helpers :timer
# Omit `configure`, `shutdown` and other plugin APIs
def start
super
# 2. Execute timer with unique name and second unit interval
timer_execute(:example_timer, 10) {
# ...
}
end
end
end
The launched timer is managed by the plugin helper. No need of timer shutdown code in plugin's shutdown method. The plugin shutdowns the launched timers automatically.
Methods
timer_execute(title, interval, repeat: true, &block)
This method executes the timer with the given parameters and routine.
title: unique symbol valueinterval: second unitinteger/floatvalue.repeat:true/false(default:true). Iffalse, timer is one-shot.
Code examples:
# Pass block directly. block is executed in 10 second interval.
timer_execute(:example_timer, 10) {
# ...
}
# Pass block with existing method. block is executed in 5 second and one-shot.
timer_execute(:example_timer_run, 5s, repeat: false, &method(:run))
def run
# ...
end