dataoperations-aggregate 0.0.3 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/dataoperations-aggregate.rb +12 -10
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: af4af69996bbbaf33b749eded827f3d6f695e44bfcd1be0bda98ed8e027cd0f1
4
- data.tar.gz: 94d67f60c8ff46462c84a9d0a186c6d240d99ca533d4db624cef97895efc5050
3
+ metadata.gz: 641acf44ae266d4790320ae506cc968b20fe9fdcbc63b7fb50b0cb41c13a77b6
4
+ data.tar.gz: adeed75be0d03687fa1700e3ee5c8048885a904b0e8ad5667969328e8a4472a0
5
5
  SHA512:
6
- metadata.gz: a4cfe7be327d99b497d134d3ea3fad255aa46a8bf5b0153f96e5d2cd49bcc41ff444ada6b0cc08d2c0f2a398ff90f447f1959f7945dc3e0b8f506c1a90321c09
7
- data.tar.gz: 754c6c3920f28c29d9c03dbd7a1c5a00fbd71f560f72e8e000dca1b7eb68283c61ca85e6bfde1a689d68dd1d2953d593549aa0ec72dc37573feddd3320ffce1b
6
+ metadata.gz: 3b7f039bc8f7046051a8150576eb6a29ba10edb6287251bd0980a211eecec41b69bcda10dde9cf8d920f5dcf07c7be1752b2b211dda5419f7fd7c5686cfd0195
7
+ data.tar.gz: 12f5981b5fc696c4cb0b36a68dd38a5ad814085bf8f3aded30cfb2e2446607f0971a6adc9220cb29f3615ca44a9673c8dcac18f8d825bd1a28755bdb4e92a3cd
@@ -72,6 +72,7 @@ module DataOperations
72
72
  end
73
73
  end
74
74
 
75
+ @aggregator_mutex = Mutex.new
75
76
  # TODO:
76
77
  # - Duplicate intervals - Done
77
78
  # - Sort intervals - Done
@@ -116,14 +117,14 @@ module DataOperations
116
117
  aggregator_item['aggregate_fields'] = aggregate_detail
117
118
  aggregator_item['intervals'] = interval_detail
118
119
 
119
- @aggregator[hash_group_key] = aggregator_item
120
+ @aggregator_mutex.synchronize {@aggregator[hash_group_key] = aggregator_item}
120
121
  end
121
122
 
122
123
  if !aggregator_item['aggregate_fields'].key?(aggregator_hash_key)
123
124
  hash_aggregator = {}
124
125
  hash_aggregator[:time_started] = Time.now.to_i
125
126
  hash_aggregator['processed'] = 1
126
- aggregator_item['aggregate_fields'][aggregator_hash_key] = hash_aggregator
127
+ @aggregator_mutex.synchronize {aggregator_item['aggregate_fields'][aggregator_hash_key] = hash_aggregator}
127
128
  else
128
129
  aggregator_item['aggregate_fields'][aggregator_hash_key]['processed'] += 1
129
130
  end
@@ -150,14 +151,15 @@ module DataOperations
150
151
  aggregate_data = {}
151
152
 
152
153
  # @log.debug @aggregator
153
- # @aggregator_mutex.synchronize do
154
- current_time = Time.now.to_i
155
- @aggregator.each do |group_item_key, group_item_value|
156
- aggregate_first_interval(aggregate_data, current_time, group_item_value)
157
-
158
- # Calculate subsecuents aggregations
159
- group_item_value['intervals'].keys[1..-1].each do |s_interval|
160
- aggregate_subsequents_intervals(aggregate_data, current_time, group_item_value, s_interval)
154
+ @aggregator_mutex.synchronize do
155
+ current_time = Time.now.to_i
156
+ @aggregator.each do |group_item_key, group_item_value|
157
+ aggregate_first_interval(aggregate_data, current_time, group_item_value)
158
+
159
+ # Calculate subsecuents aggregations
160
+ group_item_value['intervals'].keys[1..-1].each do |s_interval|
161
+ aggregate_subsequents_intervals(aggregate_data, current_time, group_item_value, s_interval)
162
+ end
161
163
  end
162
164
  end
163
165
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dataoperations-aggregate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Victor Guillen