kafkr 0.18.0 → 0.018.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/exe/kafkr +4 -4
- data/exe/kafkr-consumer +4 -5
- data/exe/kafkr-keys +1 -1
- data/exe/kafkr-producer +5 -5
- data/handlers/web_handler.rb +0 -1
- data/lib/kafkr/consumer.rb +6 -6
- data/lib/kafkr/encryptor.rb +2 -2
- data/lib/kafkr/log.rb +1 -1
- data/lib/kafkr/message_broker.rb +2 -2
- data/lib/kafkr/producer.rb +5 -5
- data/lib/kafkr/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1e7fd62a57849b5096b9cba1a6928ee2786a401084ca29af0bfdfb1fc2cab7c5
|
4
|
+
data.tar.gz: 6ca89348304182eeabb6c4518818ad804d6b1b4c429c52ba82905cbf431bbb12
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a2ec64c8b63a6b57860ad372ca2dc851dffca1955f7ffe0a1958aaa3a636e50f05fd581e5556761355c8515317c16f29b4d78c8d839c7c429976789d2fcfcb61
|
7
|
+
data.tar.gz: f10c003cecfacbcd05376832784430262bcdb26244efe5c345a22bdf30a75ca67b335e48bc1a6b6c72476619ab984c3b4d66a10b54562b5805940ee4e9974b9a
|
data/exe/kafkr
CHANGED
@@ -6,19 +6,19 @@ PORT = ENV["KAFKR_PORT"] || 4000
|
|
6
6
|
begin
|
7
7
|
require "kafkr"
|
8
8
|
rescue LoadError => e
|
9
|
-
|
9
|
+
Kafkr.log "Failed to load Kafkr: #{e.message}"
|
10
10
|
exit(1)
|
11
11
|
end
|
12
12
|
|
13
13
|
begin
|
14
14
|
server = Kafkr::Log.new(PORT.to_i)
|
15
|
-
|
15
|
+
Kafkr.log "Kafkr Log version #{Kafkr::VERSION} started on port #{PORT}!"
|
16
16
|
server.start
|
17
17
|
rescue => e
|
18
|
-
|
18
|
+
Kafkr.log "An error occurred: #{e.message}"
|
19
19
|
exit(1)
|
20
20
|
rescue Interrupt
|
21
|
-
|
21
|
+
Kafkr.log "\nLog server shutting down gracefully..."
|
22
22
|
server.stop if server.respond_to?(:stop)
|
23
23
|
exit(0)
|
24
24
|
end
|
data/exe/kafkr-consumer
CHANGED
@@ -9,7 +9,7 @@ host = ARGV[0] || "localhost"
|
|
9
9
|
port = ARGV[1] || 4000
|
10
10
|
timeout = ARGV[2] || 300
|
11
11
|
|
12
|
-
|
12
|
+
Kafkr.log "Running on host: #{host} and port: #{port}"
|
13
13
|
|
14
14
|
$current_consumer = nil
|
15
15
|
$restart_required = false
|
@@ -26,16 +26,15 @@ def stop_consumer
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def list_registered_handlers
|
29
|
-
puts "Registered Handlers:"
|
30
29
|
Kafkr::Consumer.handlers.each do |handler|
|
31
30
|
$loaded_handlers = {}
|
32
31
|
handler_name = handler.class.name.split("::").last.gsub(/Handler$/, "")
|
33
|
-
|
32
|
+
Kafkr.log "#{handler_name} handler registered."
|
34
33
|
end
|
35
34
|
end
|
36
35
|
|
37
36
|
def start_consumer(port, host, timeout)
|
38
|
-
|
37
|
+
Kafkr.log "Starting consumer on port #{port}! timeout: #{timeout}"
|
39
38
|
$handlers_changed = false
|
40
39
|
|
41
40
|
Kafkr::Consumer.configure do |config|
|
@@ -69,7 +68,7 @@ def reload_handlers(file_checksums)
|
|
69
68
|
if new_handlers.any?
|
70
69
|
new_handlers.each do |handler|
|
71
70
|
handler_name = handler.class.name.split("::").last.gsub(/Handler$/, "").capitalize
|
72
|
-
|
71
|
+
Kafkr.log "#{handler_name} handler updated - ok!"
|
73
72
|
end
|
74
73
|
end
|
75
74
|
end
|
data/exe/kafkr-keys
CHANGED
data/exe/kafkr-producer
CHANGED
@@ -5,12 +5,12 @@ require "readline"
|
|
5
5
|
host = ARGV[0] || "localhost"
|
6
6
|
port = ARGV[1] || 4000
|
7
7
|
|
8
|
-
|
8
|
+
kakf "Running on host: #{host} and port: #{port}"
|
9
9
|
|
10
10
|
begin
|
11
11
|
require "kafkr"
|
12
12
|
rescue LoadError => e
|
13
|
-
|
13
|
+
Kafkr.log "Failed to load Kafkr: #{e.message}"
|
14
14
|
exit(1)
|
15
15
|
end
|
16
16
|
|
@@ -24,15 +24,15 @@ begin
|
|
24
24
|
break if line == "exit"
|
25
25
|
|
26
26
|
if line.include? "<=>"
|
27
|
-
|
27
|
+
Kafkr.log Kafkr::Producer.send_message_and_wait(line)
|
28
28
|
else
|
29
29
|
Kafkr::Producer.send_message(line)
|
30
30
|
end
|
31
31
|
end
|
32
32
|
rescue => e
|
33
|
-
|
33
|
+
Kafkr.log "An error occurred: #{e.message}"
|
34
34
|
exit(1)
|
35
35
|
rescue Interrupt
|
36
|
-
|
36
|
+
Kafkr.log "\nProducer server shutting down gracefully..."
|
37
37
|
exit(0)
|
38
38
|
end
|
data/handlers/web_handler.rb
CHANGED
data/lib/kafkr/consumer.rb
CHANGED
@@ -37,8 +37,8 @@ module Kafkr
|
|
37
37
|
$handlers_changed = true
|
38
38
|
|
39
39
|
def list_registered_handlers
|
40
|
-
|
41
|
-
$loaded_handlers.keys.each { |handler|
|
40
|
+
Kafkr.log "Registered handlers:"
|
41
|
+
$loaded_handlers.keys.each { |handler| Kafkr.log "- #{handler}" }
|
42
42
|
end
|
43
43
|
|
44
44
|
def load_handlers(directory = "./handlers")
|
@@ -124,7 +124,7 @@ module Kafkr
|
|
124
124
|
|
125
125
|
if Kafkr::Consumer.configuration.suggest_handlers
|
126
126
|
if valid_class_name?(name.capitalize)
|
127
|
-
|
127
|
+
Kafkr.log "No handler for this message, you could use this one.\n\n"
|
128
128
|
|
129
129
|
handler_class_string = <<~HANDLER_CLASS
|
130
130
|
class #{name.capitalize}Handler < Kafkr::Consumer::Handler
|
@@ -133,14 +133,14 @@ module Kafkr
|
|
133
133
|
end
|
134
134
|
|
135
135
|
def handle(message)
|
136
|
-
|
136
|
+
Kafkr.log message
|
137
137
|
end
|
138
138
|
end
|
139
139
|
|
140
140
|
# Save the file to ./handlers/#{name}_handler.rb
|
141
141
|
HANDLER_CLASS
|
142
142
|
|
143
|
-
|
143
|
+
Kafkr.log handler_class_string
|
144
144
|
end
|
145
145
|
end
|
146
146
|
end
|
@@ -170,7 +170,7 @@ module Kafkr
|
|
170
170
|
sleep(wait_time)
|
171
171
|
retry
|
172
172
|
rescue Interrupt
|
173
|
-
|
173
|
+
Kafkr.log "Received interrupt signal. Shutting down consumer gracefully..."
|
174
174
|
socket&.close
|
175
175
|
exit(0)
|
176
176
|
end
|
data/lib/kafkr/encryptor.rb
CHANGED
@@ -19,7 +19,7 @@ module Kafkr
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def decrypt(encrypted_data)
|
22
|
-
#
|
22
|
+
# Kafkr.log "Encrypted data before decoding: #{encrypted_data.inspect}"
|
23
23
|
decipher = OpenSSL::Cipher.new(ALGORITHM)
|
24
24
|
decipher.decrypt
|
25
25
|
decipher.key = @key
|
@@ -27,7 +27,7 @@ module Kafkr
|
|
27
27
|
decipher.iv = raw_data[0, decipher.iv_len]
|
28
28
|
decipher.update(raw_data[decipher.iv_len..-1]) + decipher.final
|
29
29
|
rescue OpenSSL::Cipher::CipherError => e
|
30
|
-
|
30
|
+
Kafkr.log "Decryption failed: #{e.message}"
|
31
31
|
nil
|
32
32
|
end
|
33
33
|
end
|
data/lib/kafkr/log.rb
CHANGED
data/lib/kafkr/message_broker.rb
CHANGED
@@ -16,7 +16,7 @@ module Kafkr
|
|
16
16
|
encrypted_message = Kafkr::Encryptor.new.encrypt(message)
|
17
17
|
@subscribers.each do |subscriber|
|
18
18
|
if !subscriber.closed?
|
19
|
-
subscriber.
|
19
|
+
subscriber.Kafkr.log(encrypted_message)
|
20
20
|
@last_sent[subscriber] = encrypted_message
|
21
21
|
end
|
22
22
|
rescue Errno::EPIPE
|
@@ -26,7 +26,7 @@ module Kafkr
|
|
26
26
|
@subscribers.delete(subscriber)
|
27
27
|
@last_sent.delete(subscriber)
|
28
28
|
rescue
|
29
|
-
|
29
|
+
Kafkr.log "clean up subscribers"
|
30
30
|
end
|
31
31
|
|
32
32
|
end
|
data/lib/kafkr/producer.rb
CHANGED
@@ -75,13 +75,13 @@ module Kafkr
|
|
75
75
|
begin
|
76
76
|
socket = TCPSocket.new(@configuration.host, @configuration.port)
|
77
77
|
send_queued_messages(socket)
|
78
|
-
socket.
|
78
|
+
socket.Kafkr.log(encrypted_message_with_uuid)
|
79
79
|
rescue Errno::ECONNREFUSED
|
80
|
-
|
80
|
+
Kafkr.log "Connection refused. Queuing message: #{encrypted_message_with_uuid}"
|
81
81
|
@configuration.message_queue.push(encrypted_message_with_uuid)
|
82
82
|
save_queue_to_file
|
83
83
|
rescue Errno::EPIPE
|
84
|
-
|
84
|
+
Kafkr.log "Broken pipe error. Retrying connection..."
|
85
85
|
retry_connection(encrypted_message_with_uuid)
|
86
86
|
end
|
87
87
|
|
@@ -106,14 +106,14 @@ module Kafkr
|
|
106
106
|
def self.send_queued_messages(socket)
|
107
107
|
until @configuration.message_queue.empty?
|
108
108
|
queued_message = @configuration.message_queue.shift
|
109
|
-
socket.
|
109
|
+
socket.Kafkr.log(queued_message)
|
110
110
|
end
|
111
111
|
end
|
112
112
|
|
113
113
|
def self.save_queue_to_file
|
114
114
|
@@file_mutex.synchronize do
|
115
115
|
File.open(@configuration.queue_file, "w") do |file|
|
116
|
-
file.
|
116
|
+
file.Kafkr.log(@configuration.message_queue)
|
117
117
|
end
|
118
118
|
end
|
119
119
|
end
|
data/lib/kafkr/version.rb
CHANGED