pgtk 0.28.1 → 0.28.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/pgtk/stash.rb +10 -7
- data/lib/pgtk/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: 383ebf58dcd3f2deefe3f56384a1144f0de2aadd81b01f814cc2aa1610b4e1f1
|
|
4
|
+
data.tar.gz: 3421b3a30ec731028021b7206ed9d35d271d325d311a9c50feca0c7cd909d256
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9d6be631578aa3ad6d31f563365b8c5094bb26f959ea5bf601d8e474bb018af35557190744719ea9392385b22ab5a036355fb84bc141ba6715678caaf6e09a8c
|
|
7
|
+
data.tar.gz: 6fa8e5aedf00a6da89de5dc770695aaa488c1364752909d0c783c658ac6d85708a5004aaf41126a1286c033c1f2f40d223cfcd4a1698f7f80c16774987462d55
|
data/lib/pgtk/stash.rb
CHANGED
|
@@ -212,7 +212,7 @@ class Pgtk::Stash
|
|
|
212
212
|
if ret.nil? || @stash.dig(:queries, pure, key, :stale)
|
|
213
213
|
ret = @pool.exec(pure, params, result)
|
|
214
214
|
unless pure.include?(' NOW() ')
|
|
215
|
-
tables = pure.scan(/(?<=^|\s)(?:FROM|JOIN) ([a-z_]+)(?=\s
|
|
215
|
+
tables = pure.scan(/(?<=^|\s)(?:FROM|JOIN) ([a-z_]+)(?=\s|;|$)/).map(&:first).uniq
|
|
216
216
|
raise "No tables at #{pure.inspect}" if tables.empty?
|
|
217
217
|
@entrance.with_write_lock do
|
|
218
218
|
tables.each do |t|
|
|
@@ -303,13 +303,16 @@ class Pgtk::Stash
|
|
|
303
303
|
return unless @refill_interval
|
|
304
304
|
Concurrent::TimerTask.execute(execution_interval: @refill_interval, executor: @tpool) do
|
|
305
305
|
qq =
|
|
306
|
-
@
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
306
|
+
@entrance.with_write_lock do
|
|
307
|
+
@stash[:queries]
|
|
308
|
+
.map { |k, v| [k, v.values.sum { |vv| vv[:popularity] }, v.values.any? { |vv| vv[:stale] }] }
|
|
309
|
+
end
|
|
310
|
+
qq =
|
|
311
|
+
qq.select { _1[2] }
|
|
312
|
+
.sort_by { -_1[1] }
|
|
313
|
+
.map { _1[0] }
|
|
311
314
|
qq.each do |q|
|
|
312
|
-
@stash[:queries][q].
|
|
315
|
+
@entrance.with_write_lock { @stash[:queries][q].keys }.each do |k|
|
|
313
316
|
next unless @stash[:queries][q][k][:stale]
|
|
314
317
|
next if @stash[:queries][q][k][:stale] > Time.now - @refill_delay
|
|
315
318
|
next if @tpool.queue_length >= @max_queue_length
|
data/lib/pgtk/version.rb
CHANGED