kafkr 0.18.0 → 0.018.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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