splitclient-rb 7.1.4.pre.rc14-java → 7.1.4.pre.rc19-java

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: ddb0473401cc1dff930c8c630d386ade15ed6078
4
- data.tar.gz: c157c330de409f206bde72e310b3cf904e7812b8
3
+ metadata.gz: 90fcccf598ffb68bcd8a24572926db732d7a8597
4
+ data.tar.gz: 441fcced7138c622713e42b5405743fdd8d95a9e
5
5
  SHA512:
6
- metadata.gz: 9a70724ea9ae614f94b31ad2273e5c847ebca75a90930a418e0087e0f7a7557f1c7ce174ba719fd9ed9350e50b849e43a01b6f1d6d42e134231ce2d0d22dbc96
7
- data.tar.gz: 97b8f5ea2164cf6310bec91d2a4a63ac675289cc3ef1a0a59cbeb702489fa13bc45c056cf51e5652ab67f34b3530ccc7b0377aef089b053858ef023e9211f063
6
+ metadata.gz: 2b73e0212db9cc59f0c77369c931418ca067e0f1c9bec0b711213adbe5aa82ad67a9a3c6e1cbec8ac4b2f8598df909d178a5f9ad9c061cc3f405fb9ab34e2fdc
7
+ data.tar.gz: c56739c82ecea3c4626cc40e7495f16660099ed7be72956f423afc0b6819f827cd8e636bb1f7974d1d2948f9f54f03343d9e9956eae6625e4df14eefeb5aa7f8
@@ -19,28 +19,30 @@ module SplitIoClient
19
19
  end
20
20
 
21
21
  def add_bulk(impressions)
22
- return unless @listener
23
22
  impressions.each do |impression|
24
- enqueue(
25
- split_name: impression[:i][:f],
26
- matching_key: impression[:i][:k],
27
- bucketing_key: impression[:i][:b],
28
- time: impression[:i][:m],
29
- treatment: {
30
- label: impression[:i][:r],
31
- treatment: impression[:i][:t],
32
- change_number: impression[:i][:c]
33
- },
34
- previous_time: impression[:i][:pt],
35
- attributes: impression[:attributes]
36
- ) unless impression.nil?
23
+ enqueue(impression)
37
24
  end
38
25
  end
39
26
 
40
27
  private
41
28
 
42
29
  def enqueue(impression)
43
- @queue.push(impression) if @listener
30
+ imp = {
31
+ split_name: impression[:i][:f],
32
+ matching_key: impression[:i][:k],
33
+ bucketing_key: impression[:i][:b],
34
+ time: impression[:i][:m],
35
+ treatment: {
36
+ label: impression[:i][:r],
37
+ treatment: impression[:i][:t],
38
+ change_number: impression[:i][:c]
39
+ },
40
+ previous_time: impression[:i][:pt],
41
+ attributes: impression[:attributes]
42
+ }
43
+ @queue.push(imp) if @listener
44
+ rescue StandardError => error
45
+ @config.log_found_exception(__method__.to_s, error)
44
46
  end
45
47
 
46
48
  def router_thread
@@ -32,12 +32,12 @@ module SplitIoClient
32
32
  to_return
33
33
  end
34
34
 
35
- def truncate_time_frame(timestamp_ms)
36
- timestamp_ms - (timestamp_ms % TIME_INTERVAL_MS)
35
+ def make_key(split_name, time_frame)
36
+ "#{split_name}::#{ImpressionCounter.truncate_time_frame(time_frame)}"
37
37
  end
38
38
 
39
- def make_key(split_name, time_frame)
40
- "#{split_name}::#{truncate_time_frame(time_frame)}"
39
+ def self.truncate_time_frame(timestamp_ms)
40
+ timestamp_ms - (timestamp_ms % TIME_INTERVAL_MS)
41
41
  end
42
42
  end
43
43
  end
@@ -8,7 +8,6 @@ module SplitIoClient
8
8
  @config = config
9
9
  @impressions_repository = impressions_repository
10
10
  @impression_counter = impression_counter
11
- @impression_router = SplitIoClient::ImpressionRouter.new(@config)
12
11
  @impression_observer = SplitIoClient::Observers::ImpressionObserver.new
13
12
  end
14
13
 
@@ -18,7 +17,7 @@ module SplitIoClient
18
17
 
19
18
  impression_data[:pt] = @impression_observer.test_and_set(impression_data) unless redis?
20
19
 
21
- return impression_optimized(split_name, impression_data, params[:attributes]) if optimized? && !redis?
20
+ @impression_counter.inc(split_name, impression_data[:m]) if optimized? && !redis?
22
21
 
23
22
  impression(impression_data, params[:attributes])
24
23
  rescue StandardError => error
@@ -28,8 +27,14 @@ module SplitIoClient
28
27
  def track(impressions)
29
28
  return if impressions.empty?
30
29
 
31
- @impressions_repository.add_bulk(impressions)
32
- @impression_router.add_bulk(impressions)
30
+ impression_router.add_bulk(impressions)
31
+
32
+ if optimized? && !redis?
33
+ optimized_impressions = impressions.select { |imp| should_queue_impression?(imp[:i]) }
34
+ @impressions_repository.add_bulk(optimized_impressions)
35
+ else
36
+ @impressions_repository.add_bulk(impressions)
37
+ end
33
38
  rescue StandardError => error
34
39
  @config.log_found_exception(__method__.to_s, error)
35
40
  end
@@ -66,14 +71,9 @@ module SplitIoClient
66
71
  @config.impressions_mode == :optimized
67
72
  end
68
73
 
69
- def impression_optimized(split_name, impression_data, attributes)
70
- @impression_counter.inc(split_name, impression_data[:m])
71
-
72
- impression(impression_data, attributes) if should_queue_impression?(impression_data)
73
- end
74
-
75
74
  def should_queue_impression?(impression)
76
- impression[:pt].nil? || (impression[:pt] < ((Time.now.to_f * 1000.0).to_i - Common::TIME_INTERVAL_MS))
75
+ impression[:pt].nil? ||
76
+ (ImpressionCounter.truncate_time_frame(impression[:pt]) != ImpressionCounter.truncate_time_frame(impression[:m]))
77
77
  end
78
78
 
79
79
  def impression(impression_data, attributes)
@@ -83,6 +83,12 @@ module SplitIoClient
83
83
  def redis?
84
84
  @config.impressions_adapter.class.to_s == 'SplitIoClient::Cache::Adapters::RedisAdapter'
85
85
  end
86
+
87
+ def impression_router
88
+ @impression_router ||= SplitIoClient::ImpressionRouter.new(@config)
89
+ rescue StandardError => error
90
+ @config.log_found_exception(__method__.to_s, error)
91
+ end
86
92
  end
87
93
  end
88
94
  end
@@ -1,3 +1,3 @@
1
1
  module SplitIoClient
2
- VERSION = '7.1.4.pre.rc14'
2
+ VERSION = '7.1.4.pre.rc19'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: splitclient-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.1.4.pre.rc14
4
+ version: 7.1.4.pre.rc19
5
5
  platform: java
6
6
  authors:
7
7
  - Split Software
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-21 00:00:00.000000000 Z
11
+ date: 2020-09-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement