sidekiq-haron 0.1.1 → 0.1.2
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/lib/sidekiq/haron/client_middleware.rb +10 -6
- data/lib/sidekiq/haron/exception_logger.rb +14 -10
- data/lib/sidekiq/haron/formatter.rb +12 -8
- data/lib/sidekiq/haron/job_logger.rb +11 -7
- data/lib/sidekiq/haron/server_middleware.rb +9 -5
- data/lib/sidekiq/haron/storage.rb +33 -28
- data/lib/sidekiq/haron/transmitter.rb +32 -28
- data/lib/sidekiq/haron/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: 7a9131278d68746096c17ea16bd644f4dd043afcae8d20904e960a0d6d7cb7bc
|
4
|
+
data.tar.gz: b5894f6abb499eb92aaac11ab7c7b1acd62f7da1ac1f42681a8693b6fbc64572
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cd25ecc4856efaa674bf4855cdf417ce66c173d8d520ca94d63c9ea9d343d4e0947db93b5e2300c63b84ee985bf8877ba74c6eb1affc5b23afbe6a5b7e04c853
|
7
|
+
data.tar.gz: 5ec609ea9aaec81c856ea477956ec3df8f73a99b7885d622d4a501bc97482aa5dd528235a411741ac5b0092ec7b162caf8bc7df38834d3768af63a177712f466
|
@@ -1,10 +1,14 @@
|
|
1
|
-
|
1
|
+
module Sidekiq
|
2
|
+
module Haron
|
3
|
+
class ClientMiddleware
|
4
|
+
|
5
|
+
def call(worker_class, msg, queue, redis_pool=nil)
|
6
|
+
if msg['retry_count'].blank? # don't store on retry
|
7
|
+
Sidekiq::Haron.transmitter.save(worker_class, msg, queue, redis_pool)
|
8
|
+
end
|
9
|
+
yield
|
10
|
+
end
|
2
11
|
|
3
|
-
def call(worker_class, msg, queue, redis_pool=nil)
|
4
|
-
if msg['retry_count'].blank? # don't store on retry
|
5
|
-
Sidekiq::Haron.transmitter.save(worker_class, msg, queue, redis_pool)
|
6
12
|
end
|
7
|
-
yield
|
8
13
|
end
|
9
|
-
|
10
14
|
end
|
@@ -1,15 +1,19 @@
|
|
1
1
|
require 'sidekiq/exception_handler'
|
2
|
-
|
2
|
+
module Sidekiq
|
3
|
+
module Haron
|
4
|
+
class ExceptionLogger < Sidekiq::ExceptionHandler::Logger
|
3
5
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
6
|
+
def self.install
|
7
|
+
Sidekiq.error_handlers.delete_if{|eh| eh.is_a? Sidekiq::ExceptionHandler::Logger }
|
8
|
+
Sidekiq.error_handlers.unshift Sidekiq::Haron::ExceptionLogger.new
|
9
|
+
end
|
8
10
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
11
|
+
def call(ex, ctxHash)
|
12
|
+
jid = ctxHash.present? && ctxHash[:job]['jid']
|
13
|
+
Sidekiq::Haron.transmitter.load(jid) if jid.present?
|
14
|
+
Sidekiq::Haron.transmitter.tagged{ super(ex, ctxHash) }
|
15
|
+
end
|
14
16
|
|
17
|
+
end
|
18
|
+
end
|
15
19
|
end
|
@@ -1,12 +1,16 @@
|
|
1
|
-
|
1
|
+
module Sidekiq
|
2
|
+
module Haron
|
3
|
+
class Formatter < Sidekiq::Logging::Pretty
|
2
4
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
5
|
+
def call(severity, time, program_name, message)
|
6
|
+
result = "#{context} #{severity.to_s[0]}: #{message}\n"
|
7
|
+
if ENV['RAILS_LOG_TO_STDOUT'].present?
|
8
|
+
result
|
9
|
+
else
|
10
|
+
"#{time.utc.iso8601(3)} #{result}"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
9
14
|
end
|
10
15
|
end
|
11
|
-
|
12
16
|
end
|
@@ -1,12 +1,16 @@
|
|
1
1
|
require 'sidekiq/job_logger'
|
2
|
-
|
2
|
+
module Sidekiq
|
3
|
+
module Haron
|
4
|
+
class JobLogger < Sidekiq::JobLogger
|
3
5
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
6
|
+
def call(item, queue)
|
7
|
+
Sidekiq::Haron.transmitter.load(item['jid'])
|
8
|
+
Sidekiq::Haron.transmitter.tagged do
|
9
|
+
Sidekiq.logger.info("with args #{item['args'].inspect}")
|
10
|
+
super
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
9
14
|
end
|
10
15
|
end
|
11
|
-
|
12
16
|
end
|
@@ -1,8 +1,12 @@
|
|
1
|
-
|
1
|
+
module Sidekiq
|
2
|
+
module Haron
|
3
|
+
class ServerMiddleware
|
2
4
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
5
|
+
def call(worker, msg, queue)
|
6
|
+
Sidekiq::Haron.transmitter.load(msg['jid'])
|
7
|
+
yield
|
8
|
+
end
|
7
9
|
|
10
|
+
end
|
11
|
+
end
|
8
12
|
end
|
@@ -1,38 +1,43 @@
|
|
1
|
-
module Sidekiq
|
2
|
-
|
1
|
+
module Sidekiq
|
2
|
+
module Haron
|
3
|
+
module Storage
|
3
4
|
|
4
|
-
|
5
|
+
DEFAULT_EXPIRY = 30 * 24 * 60 * 60 # 30 days
|
5
6
|
|
6
|
-
|
7
|
-
redis_connection(redis_pool) do |conn|
|
8
|
-
conn.multi do
|
9
|
-
conn.hmset key(id), *(data.to_a.flatten(1))
|
10
|
-
conn.expire key(id), DEFAULT_EXPIRY
|
11
|
-
end[0]
|
12
|
-
end
|
13
|
-
end
|
7
|
+
protected
|
14
8
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
9
|
+
def store_for_id(id, data, redis_pool=nil)
|
10
|
+
redis_connection(redis_pool) do |conn|
|
11
|
+
conn.multi do
|
12
|
+
conn.hmset key(id), *(data.to_a.flatten(1))
|
13
|
+
conn.expire key(id), DEFAULT_EXPIRY
|
14
|
+
end[0]
|
15
|
+
end
|
16
|
+
end
|
20
17
|
|
21
|
-
|
18
|
+
def read_for_id(id)
|
19
|
+
Sidekiq.redis do |conn|
|
20
|
+
conn.hgetall(key(id))
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
22
25
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
26
|
+
def redis_connection(redis_pool=nil)
|
27
|
+
if redis_pool
|
28
|
+
redis_pool.with do |conn|
|
29
|
+
yield conn
|
30
|
+
end
|
31
|
+
else
|
32
|
+
Sidekiq.redis do |conn|
|
33
|
+
yield conn
|
34
|
+
end
|
35
|
+
end
|
27
36
|
end
|
28
|
-
|
29
|
-
|
30
|
-
|
37
|
+
|
38
|
+
def key(id)
|
39
|
+
"sidekiq:haron:#{id}"
|
31
40
|
end
|
32
41
|
end
|
33
42
|
end
|
34
|
-
|
35
|
-
def key(id)
|
36
|
-
"sidekiq:haron:#{id}"
|
37
|
-
end
|
38
43
|
end
|
@@ -1,39 +1,43 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
module Sidekiq
|
2
|
+
module Haron
|
3
|
+
class Transmitter
|
4
|
+
include Sidekiq::Haron::Storage
|
5
|
+
|
6
|
+
def save worker_class, msg, queue, redis_pool
|
7
|
+
data = saved_data(worker_class, msg, queue)
|
8
|
+
store_for_id msg['jid'], data, redis_pool
|
9
|
+
end
|
3
10
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
11
|
+
def load jid
|
12
|
+
load_data read_for_id(jid)
|
13
|
+
rescue => e
|
14
|
+
Sidekiq.logger.error "loading data error - #{e.to_s}"
|
15
|
+
{}
|
16
|
+
end
|
8
17
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
18
|
+
def tagged
|
19
|
+
Rails.logger.tagged(tags) do
|
20
|
+
Sidekiq.logger.tagged(tags) do
|
21
|
+
yield
|
22
|
+
end
|
23
|
+
end
|
15
24
|
|
16
|
-
def tagged
|
17
|
-
Rails.logger.tagged(tags) do
|
18
|
-
Sidekiq.logger.tagged(tags) do
|
19
|
-
yield
|
20
25
|
end
|
21
|
-
end
|
22
26
|
|
23
|
-
|
27
|
+
def tags
|
28
|
+
[]
|
29
|
+
end
|
24
30
|
|
25
|
-
|
26
|
-
[]
|
27
|
-
end
|
31
|
+
private
|
28
32
|
|
29
|
-
|
33
|
+
def saved_data
|
34
|
+
raise NotImplemented
|
35
|
+
end
|
30
36
|
|
31
|
-
|
32
|
-
|
33
|
-
|
37
|
+
def load_data
|
38
|
+
raise NotImplemented
|
39
|
+
end
|
34
40
|
|
35
|
-
|
36
|
-
raise NotImplemented
|
41
|
+
end
|
37
42
|
end
|
38
|
-
|
39
43
|
end
|