File tree Expand file tree Collapse file tree 3 files changed +16
-2
lines changed Expand file tree Collapse file tree 3 files changed +16
-2
lines changed Original file line number Diff line number Diff line change 2
2
require "logstash/inputs/base"
3
3
require "logstash/namespace"
4
4
require "socket"
5
+ require "stud/interval"
6
+ require "concurrent"
5
7
6
8
7
9
# Read rows from an sqlite database.
@@ -146,7 +148,7 @@ def run(queue)
146
148
147
149
begin
148
150
@logger . debug ( "Tailing sqlite db" , :path => @path )
149
- loop do
151
+ until stop?
150
152
count = 0
151
153
@table_data . each do |k , table |
152
154
table_name = table [ :name ]
@@ -174,7 +176,8 @@ def run(queue)
174
176
# sleep a bit
175
177
@logger . debug ( "No new rows. Sleeping." , :time => sleeptime )
176
178
sleeptime = [ sleeptime * 2 , sleep_max ] . min
177
- sleep ( sleeptime )
179
+
180
+ Stud . stoppable_sleep ( sleeptime ) { stop? }
178
181
else
179
182
sleeptime = sleep_min
180
183
end
Original file line number Diff line number Diff line change @@ -26,5 +26,6 @@ Gem::Specification.new do |s|
26
26
s . add_runtime_dependency 'jdbc-sqlite3'
27
27
28
28
s . add_development_dependency 'logstash-devutils'
29
+ s . add_development_dependency 'logstash-codec-plain'
29
30
end
30
31
Original file line number Diff line number Diff line change
1
+ # encoding: utf-8
1
2
require "logstash/devutils/rspec/spec_helper"
3
+ require "logstash/inputs/sqlite"
4
+ require "logstash/codecs/plain"
5
+
6
+ describe LogStash ::Inputs ::Sqlite do
7
+ describe "stopping" do
8
+ let ( :config ) { { "path" => "testdb.sqlite3" } }
9
+ it_behaves_like "an interruptible input plugin"
10
+ end
11
+ end
You can’t perform that action at this time.
0 commit comments