nutella_lib 0.4.19 → 0.4.20
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/VERSION +1 -1
- data/lib/util/mongo_persisted_hash.rb +20 -3
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0fb621dfc6b34d3974b40b76e7a2ceaabb154034
|
4
|
+
data.tar.gz: 2d11f31335d790eab2995c7bbfe87a401e559808
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 494b6dbb531808a913cdcfa9a21b71ff069ce16ed8c81b80494038d466448569b50ba4b3d783ec879720db36422b260eaad4485b8d546973be4de1b0aa6de349
|
7
|
+
data.tar.gz: 27820fe5693a86b97576f31a9932a106e2f89405e1c1d9b859bc4680f392a61c23a95913eb5f6d2728966dd3e7d6b4cc2beb8f5d7b007fec9d59e308f964a611
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.4.
|
1
|
+
0.4.20
|
@@ -18,6 +18,19 @@ class MongoPersistedHash
|
|
18
18
|
client = Mongo::Client.new([hostname], :database => db)
|
19
19
|
@collection = client[collection]
|
20
20
|
@doc_id = name
|
21
|
+
|
22
|
+
# Semaphore for the write on DB synchronization
|
23
|
+
@s = Mutex.new
|
24
|
+
|
25
|
+
Thread.new {
|
26
|
+
while sleep 1
|
27
|
+
@s.synchronize {
|
28
|
+
if(!defined? @r)
|
29
|
+
@collection.find({'_id' => @doc_id}).find_one_and_replace(@r, :upsert => :true)
|
30
|
+
end
|
31
|
+
}
|
32
|
+
end
|
33
|
+
}
|
21
34
|
end
|
22
35
|
|
23
36
|
|
@@ -111,15 +124,19 @@ class MongoPersistedHash
|
|
111
124
|
|
112
125
|
def load_hash
|
113
126
|
if(!defined? @r)
|
114
|
-
@
|
127
|
+
@s.synchronize {
|
128
|
+
@r = @collection.find({_id: @doc_id}).limit(1).first
|
129
|
+
}
|
115
130
|
end
|
116
131
|
@r.nil? ? {'_id' => @doc_id} : @r
|
117
132
|
end
|
118
133
|
|
119
134
|
|
120
135
|
def store_hash(hash)
|
121
|
-
@
|
122
|
-
|
136
|
+
@s.synchronize {
|
137
|
+
@r = hash
|
138
|
+
}
|
139
|
+
# The store is made in a separate thread
|
123
140
|
end
|
124
141
|
|
125
142
|
|