-
Notifications
You must be signed in to change notification settings - Fork 8
/
CHANGELOG
234 lines (123 loc) · 3.97 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
6.0.1
* Enhancements
* Use Redis#exists? to avoid deprec warning
6.0.0
* Breaking changes
* Set lock_storage and cache_storage separately
5.0.0
* Enhancements / breaking changes
* Propagate errors to all waiters up to 1 second after the error
* Stop using redlock, just use plain single-node Redis locking
4.0.6
* ?
* Don't test on ruby 2.1
* Enhancements
* LockAndCache.cached?(*key_parts) to check if a value is cached
4.0.5 / 2017-04-01
* Enhancements
* allow dates and times in keys
* Test on ruby 2.3.0 and 2.4.1
* 2x faster key generation
4.0.4 / 2016-04-11
* Bug fixes
* Don't default to debug logging
4.0.3 / 2016-04-11
* Bug fixes
* Allow true or false in keys
4.0.2 / 2016-04-11
* Bug fixes
* When generating key, recurse into #lock_and_cache_key
4.0.1 / 2016-04-11
* Bug fixes
* Avoid deadlocks related to logging
4.0.0 / 2016-04-11
* Breaking changes
* The cache key generation I've always wanted: recursively call #id or #lock_and_cache_key
3.0.1 / 2016-04-04
* Enhancements
* Don't use deprecated Thread.exclusive
3.0.0 / 2016-04-02
* Breaking changes
* In context mode (when you `include LockAndCache`), really call #lock_and_cache_key or #id on the instance
2.2.2 / 2015-12-18
* Bug fixes
* Don't die if you pass a non-integer expires - round it
2.2.1 / 2015-12-14
* Bug fixes
* Construct key using the correct class name
2.2.0 / 2015-11-15
* Enhancements
* Increase default heartbeat expires to 32 seconds from 2 (which was too strict IMO)
* Allow setting heartbeat_expires: globally (LockAndCache.heartbeat_expires=) or per call
* Provide LockAndCache.locked?()
2.1.1 / 2015-10-26
* Bug fixes
* Blow up if you try to use standalone mode without a key
2.1.0 / 2015-10-26
* Enhancements
* Better documentation
* Standalone mode (LockAndCache.lock_and_cache([...]) {})
* Nulls can be set to expire sooner than non-null return values (`nil_expires`)
2.0.2 / 2015-10-16
* Bug fixes (?)
* Make sure cached values are valid marshal format (seen in the wild that they're nil)
* Enhancements
* Use original redlock gem now that it supports extend
2.0.1 / 2015-09-14
* Bug fixes
* Don't explicitly kill the lock extender thread because that sometimes causes deadlocks (don't know why)
2.0.0 / 2015-09-11
* Breaking changes
* Stricter key digest - differentiates symbols and strings
* No more lock_expires or lock_spin options
* Bug fixes
* Allow method names with non-word chars like #foo?
* Enhancements
* heartbeats so that SIGKILL will effectively clear the lock
* #lock_and_cache_clear now clears lock too
1.1.0 / 2015-08-07
* Breaking changes
* Reduce default lock expiry to 1 day instead of weird 3 days
* Enhancements
* Added :max_lock_wait option inspired by @leandromoreira
1.0.3 / 2015-08-06
* Enhancements
* More granular debug output
1.0.2 / 2015-08-06
* Bug fixes
* Put LockAndCache.flush back
1.0.1 / 2015-08-06
* Bug fixes
* Return value properly if lock was acquired but cached value immediately found
* Enhancements
* Documentation
1.0.0 / 2015-08-05
* Enhancements
* Use Redis redlock http://redis.io/topics/distlock instead of Postgres advisory locks
* No more dependency on ActiveRecord or Postgres!
0.1.2 / 2015-06-24
* Enhancements
* Add :expires option in seconds
0.1.1 / 2015-02-04
* Enhancements
* Clear individual cached things with #lock_and_cache_clear
0.1.0 / 2015-01-22
* Breaking changes
* Redis only
* Now you use it inside methods (like Rails.cache.fetch) instead of outside (like cache_method)
* Enhancements
* Way simpler, no dependency on CacheMethod
0.0.5 / 2014-12-12
* Enhancements
* ENV['LOCK_AND_CACHE_DEBUG'] == 'true' debug output to $stderr
0.0.4 / 2014-12-12
* Bug fixes
* Pass arguments while caching method results
0.0.3 / 2014-12-12
* Enhancements
* Save a trip to the database if something is already cached
0.0.2 / 2014-12-11
* Bug fixes
* Gem name is activerecord
0.0.1 / 2014-12-11
initial release!