sidekiq-history 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dcb4da53bbc80b6383a113ee1d552a4e28d72f1e
4
- data.tar.gz: 94b30cd2f275a06c86c09ee3a91adf5efbfcaa8a
3
+ metadata.gz: a5fc1bfef2bd8600e4c92b2c95e96f6af3868958
4
+ data.tar.gz: e637f50b96a6fb1069ee608ddc1f874bf6261602
5
5
  SHA512:
6
- metadata.gz: 0b33902b46397cad8a00aa8f616205049ed0f7bb86463a269b7e683e98527cba23302ef32366c6b085028b10d54ada0302d423c5b1c7ba7f5dfe61f0445c93b8
7
- data.tar.gz: 7ef485dc3262f2da74042713a0756e8501e63301fc28a96824506b2ef6bb68b59a35c27e4ffeb68e57f69f84483e83ee13a5dd69be7f504289d078a2fe9b1646
6
+ metadata.gz: 544c08be81d7a1bfc2d77b1cb055a59fb7426a9e9bbe9f82e2d60c74fa837112db1ac7fd87a1ccee80fb8b2afeff4315ef4446eb704588b68aac974d452569a2
7
+ data.tar.gz: 64024757374fb345d3fa4686fd2a28efb8593fb7521e507ed75d766f64e1c17050a4ce92c084346a8c19185b7f8c6b34782755002981b10e1f5025c2a15c03c6
data/README.md CHANGED
@@ -20,6 +20,10 @@ Or install it yourself as:
20
20
 
21
21
  Nothing left to do. Mount sidekiq, and go to the web interface. You'll see a shiny new History tab!
22
22
 
23
+ By default it will keep history on the last 1000 jobs. To change that set `Sidekiq::History::Middleware::MAX_COUNT = 10000`. Be careful because the data is persisted in Redis Sorted Set and it WILL take up RAM. Max possible value is 4294967295 per Redis limit.
24
+
25
+ If you want to only record history for specific jobs you can set `Sidekiq::History::Middleware::EXCLUDE_JOBS = ['OneJob']` (do not record for specified jobs) and `Sidekiq::History::Middleware::INCLUDE_JOBS = ['AnotherJob']` (record ONLY jobs specified). INCLUDE will take precedence so if you set it to blank array nothing will be recorded.
26
+
23
27
  ## Screenshot
24
28
 
25
29
  ![Web UI](https://github.com/russ/sidekiq-history/raw/master/examples/screenshot.png)
@@ -9,6 +9,7 @@ module Sidekiq
9
9
 
10
10
  def call(worker, msg, queue)
11
11
  self.msg = msg
12
+ job_class = msg['args'][0]['job_class']
12
13
 
13
14
  data = {
14
15
  started_at: Time.now.utc,
@@ -26,12 +27,16 @@ module Sidekiq
26
27
  conn.del(LIST_KEY)
27
28
  list.each do |entry|
28
29
  migrated_data = JSON.parse(entry)
29
- conn.zadd(LIST_KEY, data[:started_at].to_f, Sidekiq.dump_json(migrated_data))
30
+ if record_history(job_class) == true
31
+ conn.zadd(LIST_KEY, data[:started_at].to_f, Sidekiq.dump_json(migrated_data))
32
+ end
30
33
  end
31
34
  end
32
35
 
33
36
  # regular storage of history
34
- conn.zadd(LIST_KEY, data[:started_at].to_f, Sidekiq.dump_json(data))
37
+ if record_history(job_class) == true
38
+ conn.zadd(LIST_KEY, data[:started_at].to_f, Sidekiq.dump_json(data))
39
+ end
35
40
  unless Sidekiq.history_max_count == false
36
41
  conn.zremrangebyrank(LIST_KEY, 0, -(Sidekiq.history_max_count + 1))
37
42
  end
@@ -39,6 +44,29 @@ module Sidekiq
39
44
 
40
45
  yield
41
46
  end
47
+
48
+ private
49
+
50
+ # check if this job should be recorded
51
+ def record_history job_class
52
+ # first check inclusion
53
+ if defined? INCLUDE_JOBS
54
+ if INCLUDE_JOBS.include? job_class
55
+ return true
56
+ else
57
+ return false
58
+ end
59
+ elsif defined? EXCLUDE_JOBS
60
+ if EXCLUDE_JOBS.include? job_class
61
+ return false
62
+ else
63
+ return true
64
+ end
65
+ else
66
+ return true
67
+ end
68
+ end
69
+
42
70
  end
43
71
  end
44
72
  end
@@ -1,5 +1,5 @@
1
1
  module Sidekiq
2
2
  module History
3
- VERSION = "0.0.7"
3
+ VERSION = "0.0.8"
4
4
  end
5
5
  end
@@ -9,7 +9,13 @@ module Sidekiq
9
9
  end
10
10
 
11
11
  def self.history_max_count
12
- return 1000 if @history_max_count.nil?
12
+ # => use default 1000 unless specified in config. Max is 4294967295 per Redis Sorted Set limit
13
+ if defined? MAX_COUNT
14
+ hmc = [MAX_COUNT, 4294967295].min
15
+ else
16
+ hmc = 1000
17
+ end
18
+ return hmc if @history_max_count.nil?
13
19
  @history_max_count
14
20
  end
15
21
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq-history
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Russ Smith
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-04 00:00:00.000000000 Z
11
+ date: 2017-04-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sidekiq
@@ -135,7 +135,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
135
135
  version: '0'
136
136
  requirements: []
137
137
  rubyforge_project:
138
- rubygems_version: 2.5.1
138
+ rubygems_version: 2.5.2
139
139
  signing_key:
140
140
  specification_version: 4
141
141
  summary: History for sidekiq jobs.