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
# 2. Execute timer with unique name and second unit interval
timer_execute(:example_timer, 10) {
# ...
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.


timer_execute(title, interval, repeat: true, &block)

This method executes the timer with the given parameters and routine.
  • title: unique symbol value
  • interval: second unit integer/float value.
  • repeat: true/false (default: true). If false, 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
# ...

Plugins using timer

If this article is incorrect or outdated, or omits critical information, please let us know. Fluentd is an open-source project under Cloud Native Computing Foundation (CNCF). All components are available under the Apache 2 License.