resqueue 1.0.0

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.
Files changed (60) hide show
  1. checksums.yaml +7 -0
  2. data/HISTORY.md +488 -0
  3. data/LICENSE +20 -0
  4. data/README.markdown +920 -0
  5. data/Rakefile +57 -0
  6. data/bin/resque +81 -0
  7. data/bin/resque-web +31 -0
  8. data/lib/resque.rb +578 -0
  9. data/lib/resque/data_store.rb +326 -0
  10. data/lib/resque/errors.rb +21 -0
  11. data/lib/resque/failure.rb +119 -0
  12. data/lib/resque/failure/airbrake.rb +33 -0
  13. data/lib/resque/failure/base.rb +73 -0
  14. data/lib/resque/failure/multiple.rb +68 -0
  15. data/lib/resque/failure/redis.rb +128 -0
  16. data/lib/resque/failure/redis_multi_queue.rb +104 -0
  17. data/lib/resque/helpers.rb +48 -0
  18. data/lib/resque/job.rb +296 -0
  19. data/lib/resque/log_formatters/quiet_formatter.rb +7 -0
  20. data/lib/resque/log_formatters/verbose_formatter.rb +7 -0
  21. data/lib/resque/log_formatters/very_verbose_formatter.rb +8 -0
  22. data/lib/resque/logging.rb +18 -0
  23. data/lib/resque/plugin.rb +78 -0
  24. data/lib/resque/server.rb +299 -0
  25. data/lib/resque/server/helpers.rb +64 -0
  26. data/lib/resque/server/public/favicon.ico +0 -0
  27. data/lib/resque/server/public/idle.png +0 -0
  28. data/lib/resque/server/public/jquery-1.12.4.min.js +5 -0
  29. data/lib/resque/server/public/jquery.relatize_date.js +95 -0
  30. data/lib/resque/server/public/poll.png +0 -0
  31. data/lib/resque/server/public/ranger.js +78 -0
  32. data/lib/resque/server/public/reset.css +44 -0
  33. data/lib/resque/server/public/style.css +91 -0
  34. data/lib/resque/server/public/working.png +0 -0
  35. data/lib/resque/server/test_helper.rb +19 -0
  36. data/lib/resque/server/views/error.erb +1 -0
  37. data/lib/resque/server/views/failed.erb +29 -0
  38. data/lib/resque/server/views/failed_job.erb +50 -0
  39. data/lib/resque/server/views/failed_queues_overview.erb +24 -0
  40. data/lib/resque/server/views/key_sets.erb +17 -0
  41. data/lib/resque/server/views/key_string.erb +11 -0
  42. data/lib/resque/server/views/layout.erb +44 -0
  43. data/lib/resque/server/views/next_more.erb +22 -0
  44. data/lib/resque/server/views/overview.erb +4 -0
  45. data/lib/resque/server/views/queues.erb +58 -0
  46. data/lib/resque/server/views/stats.erb +62 -0
  47. data/lib/resque/server/views/workers.erb +111 -0
  48. data/lib/resque/server/views/working.erb +72 -0
  49. data/lib/resque/stat.rb +58 -0
  50. data/lib/resque/tasks.rb +72 -0
  51. data/lib/resque/thread_signal.rb +45 -0
  52. data/lib/resque/vendor/utf8_util.rb +26 -0
  53. data/lib/resque/vendor/utf8_util/utf8_util_18.rb +91 -0
  54. data/lib/resque/vendor/utf8_util/utf8_util_19.rb +6 -0
  55. data/lib/resque/version.rb +3 -0
  56. data/lib/resque/worker.rb +892 -0
  57. data/lib/resqueue.rb +4 -0
  58. data/lib/tasks/redis.rake +161 -0
  59. data/lib/tasks/resque.rake +2 -0
  60. metadata +197 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d0d1459104978aa04326fa9eb66415fd6b532a59
4
+ data.tar.gz: 18e989fda97476bfdbaad7cfb04127cdaea86a4d
5
+ SHA512:
6
+ metadata.gz: ff77068ffee8fa0d3849013088b94e65ebd2ba84e5223b56f995de1cd7e0d9c12c169af1a40db2bd1efeb1c18ee8b98918e1e3e785749bbff4b21c0c50edc6f3
7
+ data.tar.gz: 81f404828bae49b37307756efe26c3020468595901789b047cc39873e3b170151c94c20242063d0b749dc2cdf6d8d8ae6ebbc9edd553915c987615606d14d614
@@ -0,0 +1,488 @@
1
+ ## 1.27.0 (TBD)
2
+
3
+ * Update jQuery from 1.3.2 to 1.12.4
4
+
5
+ * Fix issue where calling Worker.find, Worker.all, or Worker.working from withing
6
+ a running job would rewrite the PID file with the PID of the forked worker.
7
+ This causes a change to the Worker#new API that may affect plugin
8
+ implementations. See Worker#new and Worker#prepare for details. (@jeremywadsack)
9
+
10
+ ## 1.26.0 (2016-03-10)
11
+
12
+ This changelog is a bit incomplete. We will be much stricter about the changelog for
13
+ the next release.
14
+
15
+ * rake: when BACKGROUND, ensure worker.reconnect after daemonizing (@yaauie)
16
+ * worker: when searching workers, Worker#pid properly reflects pid of the found
17
+ worker instead of the current pid. (@yaauie)
18
+ * Add support for RESQUE_PROCLINE_PREFIX environment variable to prefix
19
+ procline strings with a static identifier. (@rbroemeling)
20
+ * Resque::Worker logs errors at the correct logging level (@chrisccerami)
21
+
22
+ ## 1.25.2 (2014-3-3)
23
+
24
+ * Respect TERM_CHILD setting when not forking (@ggilder)
25
+ * implementation of backend connection with a hash (Andrea Rossi)
26
+ * require yaml for show_args support (@yaauie)
27
+ * use redis-namespace 1.3 (Andrea Rossi)
28
+ * fix DOCS link in README (@cade)
29
+ * Fix worker prune test to actually run its assertion & cover reality. (@yaauie)
30
+ * Eliminate infinite recursion when Resque::Helpers mixed into Resque (@yaml)
31
+ * use ruby, avoid shelling out. google++ (@hone)
32
+ * Failed Assertions Don't Fail Tests :rage: (@yaauie)
33
+
34
+ ## 1.25.1 (2013-9-26)
35
+
36
+ * Actually require Forwardable from the standard library.
37
+
38
+ ## 1.25.0 (2013-4-16)
39
+ * Updates fork method so [resque-multi-job-forks](https://github.com/stulentsev/resque-multi-job-forks)
40
+ monkey patching works again. See discussion at https://github.com/defunkt/resque/pull/895 for more
41
+ context (@jonhyman)
42
+ * Use Redis.pipelined to group batches of redis commands.
43
+ https://github.com/resque/resque/pull/902 (@jonhyman)
44
+ * Fixed uninitialize constant for the module/class that contains the perform
45
+ method causing job failures to no be reported, #792 (@sideshowcoder)
46
+ * Fix Resque::Failure::Base.all to have the correct signature.
47
+ (@rentalutions)
48
+ * Don't close stdio pipes when daemonizing so as to not hide errors. #967
49
+ (@sideshowcoder)
50
+ * Fix for worker_pids on Windows. #980 (@kzgs)
51
+ * Only prune workers for queues the current worker knows about. #1000
52
+ (!) (@dsabanin)
53
+ * Handle duplicate TERM signals. #988 (@softwaregravy)
54
+ * Fix issue with exiting workers and unintentionally deregistering the
55
+ parent when the forked child exits. #1017 (@magec)
56
+ * Fix encoding errors with local date formatting. #1065 (@katafrakt)
57
+ * Fix CI for 1.8.7 and 1.9.2 modes due to dependencies. #1090
58
+ (@adelcambre)
59
+ * Allow using globs for queue names to listen on, allowing things like
60
+ listening on `staging_*`. #1085 (@adelcambre)
61
+
62
+
63
+ ## 1.24.1 (2013-3-23)
64
+
65
+ * Adds a default value for `per_page` on resque-server for plugins which add tabs (@jonhyman)
66
+ * Fix bad logic on the failed queue adapter
67
+ * Added missing `require 'time'` which was causing occasional errors which
68
+ would crash workers.
69
+
70
+ ## 1.24.0 (2013-3-21)
71
+
72
+ * Web UI: Fix regression that caused the failure tab to break when using
73
+ certain failure backends (@kjg)
74
+ * Web UI: Add page list to queues (@ql)
75
+ * Web UI: Fix regression that caused the failure tab to break when clicking on
76
+ "clear all failures" under certain failure backends, #859 (@jonhyman)
77
+ * Fix regression for Resque hooks where Resque would error out if you assigned
78
+ multiple hooks using an array, #859 (@jonhyman)
79
+ * Adds ENV["RUN_AT_EXIT_HOOKS"] which when set to 1 causes any defined
80
+ `at_exit` hooks to be run on the child when the forked process exits, #862
81
+ (@jonhyman)
82
+ * Bump up redis-namespace to 1.2.
83
+ * Remove multi_json, the JSON gem does the right thing everywhere now.
84
+ * Documentation fixes with demo instructions.
85
+ * Fixed encoding for worker PIDs on Windows (@kzgs)
86
+ * Cache value of PID in an ivar. This way, if you try to look up worker PIDs
87
+ from some other process (such as the console), they will be correct.
88
+ * Add a mutex-free logger. Ruby 2.0 does not allow you to use a mutex from
89
+ a signal handler, which can potentially cause deadlock. Now we're using
90
+ `mono_logger`, which has no locks.
91
+
92
+ ## 1.23.1 (2013-3-7)
93
+
94
+ * JRuby and Rubinius are 'allow failure' on CI. This is largely due to Travis
95
+ weridness and flaky tests.
96
+ * Fix link from "queues" view to "failed" view when there's only one failed
97
+ queue (trliner)
98
+ * Making all the failure backends have the same method signature for duck
99
+ typing purposes (jonhyman)
100
+ * Fix log formatters not appending a new line (flavorpill)
101
+ * redirect unauthorized resque-web polling requests to root url (trliner)
102
+ * Various resque-web fixes (@tarcieri)
103
+ * Optional RedisMultiQueue failure backend, can be enabled with
104
+ FAILURE_BACKEND=redis_multi_queue env var (@tarcieri)
105
+ * resque:failures:sort rake task will migrate an existing "failed" queue into
106
+ separate failure queues per job queue, allowing an easy migration to
107
+ the RedisMultiQueue failure backend (@tarcieri)
108
+ * Disable forking completely with FORK_PER_JOB=false env var (@tarcieri)
109
+ * Report a failure when processes are killed with signals (@dylanahsmith)
110
+ * Enable registering of multiple Resque hooks (@panthomakos, @jonhyman)
111
+
112
+ ## 1.23.0 (2012-10-01)
113
+
114
+ * don't run `before_fork` hook if Resque can't fork (@kjwierenga, @tarcieri, #672, #697)
115
+ * don't run `after_fork` hook if Resque can't fork (@kjwierenga, @tarcieri, #672, #697)
116
+ * retry connecting to redis up to 3 times (@trevorturk, #693)
117
+ * pass exceptions raised by the worker into the Failure backend (@trevorturk, #693)
118
+
119
+ ## 1.22.0 (2012-08-21)
120
+
121
+ * unregister signal handlers in child process when ENV["TERM_CHILD"] is set (@dylanasmith, #621)
122
+ * new signal handling for TERM. See http://hone.heroku.com/resque/2012/08/21/resque-signals.html. (@wuputah, @yaaule, #638)
123
+ * supports calling perform hooks when using Resque.inline (@jonhyman, #506)
124
+
125
+ ## 1.21.0 (2012-07-02)
126
+
127
+ * Add a flag to make sure failure hooks are only ran once (jakemack, #546)
128
+ * Support updated MultiJSON API (@twinturbo)
129
+ * Fix worker logging in monit example config (@twinturbo)
130
+ * loosen dependency of redis-namespace to 1.x, support for redis-rb 3.0.x
131
+ * change '%' to '$' in the 'stop program' command for monit
132
+ * UTF8 sanitize exception messages when there's a failure (@brianmario, #507)
133
+ * don't share a redis connection between parent and child (@jsanders, #588)
134
+
135
+ ## 1.20.0 (2012-02-17)
136
+
137
+ * Fixed demos for ruby 1.9 (@BMorearty, #445)
138
+ * Fixed `#requeue` tests (@hone, #500)
139
+ * Web UI: optional trailing slashes of URLs (@elisehuard, #449)
140
+ * Allow * to appear anywhere in queue list (@tapajos, #405, #407)
141
+ * Wait for child with specific PID (@jacobkg)
142
+ * #decode raise takes a string when re-raising as a different exception class (Trevor Hart)
143
+ * Use Sinatra's `pubilc_folder` if it exists (@defunkt, #420, #421)
144
+ * Assign the job's worker before calling `before_fork` (@quirkey)
145
+ * Fix Resque::Helpers#constantize to work correctly on 1.9.2 (@rtlong)
146
+ * Added before & after hooks for dequeue (@humancopy, #398)
147
+ * daemonize support using `ENV["BACKGROUND"]` (@chrisleishman)
148
+ * requeue and remove failed jobs by queue name (@evanwhalen)
149
+ * `-r` flag for resque-web for redis connection (@gjastrab)
150
+ * Added `Resque.enqueue_to`: allows you to specif the queue and still run hooks (@dan-g)
151
+ * Web UI: Set the default encoding to UTF-8 (@elubow)
152
+ * fix finding worker pids on JRuby (John Andrews + Andrew Grieser)
153
+ * Added distributed redis support (@stipple)
154
+ * Added better failure hooks (@raykrueger)
155
+ * Added before & after dequeue hooks (@humancopy)
156
+
157
+ ## 1.19.0 (2011-09-01)
158
+
159
+ * Added Airbrake (formerly Hoptoad) support.
160
+ * Web UI: Added retry all button to failed jobs page
161
+ * Web UI: Show focus outline
162
+
163
+ ## 1.18.6 (2011-08-30)
164
+
165
+ * Bugfix: Use Rails 3 eager loading for resque:preload
166
+
167
+ ## 1.18.5 (2011-08-24)
168
+
169
+ * Added support for Travis CI
170
+ * Bugfix: preload only happens in production Rails environment
171
+
172
+ ## 1.18.4 (2011-08-23)
173
+
174
+ * Bugfix: preload task depends on setup
175
+
176
+ ## 1.18.3 (2011-08-23)
177
+
178
+ * Bugfix: Fix preloading on Rails 3.x.
179
+
180
+ ## 1.18.2 (2011-08-19)
181
+
182
+ * Fix RAILS_ROOT deprecation warning
183
+
184
+ ## 1.18.1 (2011-08-19)
185
+
186
+ * Bugfix: Use RAILS_ROOT in preload task
187
+
188
+ ## 1.18.0 (2011-08-18)
189
+
190
+ * Added before_enqueue hook.
191
+ * Resque workers now preload files under app/ in Rails
192
+ * Switch to MultiJSON
193
+ * Bugfix: Finding worker pids on Solaris
194
+ * Web UI: Fix NaN days ago for worker screens
195
+ * Web UI: Add Cache-Control header to prevent proxy caching
196
+ * Web UI: Update Resque.redis_id so it can be used in a distributed ring.
197
+
198
+ ## 1.17.1 (2011-05-27)
199
+
200
+ * Reverted `exit` change. Back to `exit!`.
201
+
202
+ ## 1.17.0 (2011-05-26)
203
+
204
+ * Workers exit with `exit` instead of `exit!`. This means you
205
+ can now use `at_exit` hooks inside workers.
206
+ * More monit typo fixes.
207
+ * Fixed bug in Hoptoad backend.
208
+ * Web UI: Wrap preformatted arguments.
209
+
210
+ ## 1.16.1 (2011-05-17)
211
+
212
+ * Bugfix: Resque::Failure::Hoptoad.configure works again
213
+ * Bugfix: Loading rake tasks
214
+
215
+ ## 1.16.0 (2011-05-16)
216
+
217
+ * Optional Hoptoad backend extracted into hoptoad_notifier. Install the gem to use it.
218
+ * Added `Worker#paused?` method
219
+ * Bugfix: Properly reseed random number generator after forking.
220
+ * Bugfix: Resque.redis=(<a Redis::Namespace>)
221
+ * Bugfix: Monit example stdout/stderr redirection
222
+ * Bugfix: Removing single failure now works with multiple failure backends
223
+ * Web: 'Remove Queue' now requires confirmation
224
+ * Web: Favicon!
225
+ * Web Bugfix: Dates display in Safari
226
+ * Web Bugfix: Dates display timezone
227
+ * Web Bugfix: Race condition querying working workers
228
+ * Web Bugfix: Fix polling /workers/all in resque-web
229
+
230
+ ## 1.15.0 (2011-03-18)
231
+
232
+ * Fallback to Redis.connect. Makes ENV variables and whatnot work.
233
+ * Fixed Sinatra 1.2 compatibility
234
+
235
+ ## 1.14.0 (2011-03-17)
236
+
237
+ * Sleep interval can now be a float
238
+ * Added Resque.inline to allow in-process performing of jobs (for testing)
239
+ * Fixed tests for Ruby 1.9.2
240
+ * Added Resque.validate(klass) to validate a Job
241
+ * Decode errors are no longer ignored to help debugging
242
+ * Web: Sinatra 1.2 compatibility
243
+ * Fixed after_enqueue hook to actually run in `Resque.enqueue`
244
+ * Fixed very_verbose timestamps to use 24 hour time (AM/PM wasn't included)
245
+ * Fixed monit example
246
+ * Fixed Worker#pid
247
+
248
+ ## 1.13.0 (2011-02-07)
249
+
250
+ * Depend on redis-namespace >= 0.10
251
+ * README tweaks
252
+ * Use thread_safe option when setting redis url
253
+ * Bugfix: worker pruning
254
+
255
+ ## 1.12.0 (2011-02-03)
256
+
257
+ * Added pidfile writing from `rake resque:work`
258
+ * Added Worker#pid method
259
+ * Added configurable location for `rake install`
260
+ * Bugfix: Errors in failure backend are rescue'd
261
+ * Bugfix: Non-working workers no longer counted in "working" count
262
+ * Bugfix: Don't think resque-web is a worker
263
+
264
+ ## 1.11.0 (2010-08-23)
265
+
266
+ * Web UI: Group /workers page by hostnames
267
+
268
+ ## 1.10.0 (2010-08-23)
269
+
270
+ * Support redis:// string format in `Resque.redis=`
271
+ * Using new cross-platform JSON gem.
272
+ * Added `after_enqueue` plugin hook.
273
+ * Added `shutdown?` method which can be overridden.
274
+ * Added support for the "leftright" gem when running tests.
275
+ * Grammarfix: In the README
276
+
277
+ ## 1.9.10 (2010-08-06)
278
+
279
+ * Bugfix: before_fork should get passed the job
280
+
281
+ ## 1.9.9 (2010-07-26)
282
+
283
+ * Depend on redis-namespace 0.8.0
284
+ * Depend on json_pure instead of json (for JRuby compat)
285
+ * Bugfix: rails_env display in stats view
286
+
287
+ ## 1.9.8 (2010-07-20)
288
+
289
+ * Bugfix: Worker.all should never return nil
290
+ * monit example: Fixed Syntax Error and adding environment to the rake task
291
+ * redis rake task: Fixed typo in copy command
292
+
293
+ ## 1.9.7 (2010-07-09)
294
+
295
+ * Improved memory usage in Job.destroy
296
+ * redis-namespace 0.7.0 now required
297
+ * Bugfix: Reverted $0 changes
298
+ * Web Bugfix: Payload-less failures in the web ui work
299
+
300
+ ## 1.9.6 (2010-06-22)
301
+
302
+ * Bugfix: Rakefile logging works the same as all the other logging
303
+
304
+ ## 1.9.5 (2010-06-16)
305
+
306
+ * Web Bugfix: Display the configured namespace on the stats page
307
+ * Revert Bugfix: Make ps -o more cross platform friendly
308
+
309
+ ## 1.9.4 (2010-06-14)
310
+
311
+ * Bugfix: Multiple failure backend gets exception information when created
312
+
313
+ ## 1.9.3 (2010-06-14)
314
+
315
+ * Bugfix: Resque#queues always returns an array
316
+
317
+ ## 1.9.2 (2010-06-13)
318
+
319
+ * Bugfix: Worker.all returning nil fix
320
+ * Bugfix: Make ps -o more cross platform friendly
321
+
322
+ ## 1.9.1 (2010-06-04)
323
+
324
+ * Less strict JSON dependency
325
+ * Included HISTORY.md in gem
326
+
327
+ ## 1.9.0 (2010-06-04)
328
+
329
+ * Redis 2 support
330
+ * Depend on redis-namespace 0.5.0
331
+ * Added Resque::VERSION constant (alias of Resque::Version)
332
+ * Bugfix: Specify JSON dependency
333
+ * Bugfix: Hoptoad plugin now works on 1.9
334
+
335
+ ## 1.8.5 (2010-05-18)
336
+
337
+ * Bugfix: Be more liberal in which Redis clients we accept.
338
+
339
+ ## 1.8.4 (2010-05-18)
340
+
341
+ * Try to resolve redis-namespace dependency issue
342
+
343
+ ## 1.8.3 (2010-05-17)
344
+
345
+ * Depend on redis-rb ~> 1.0.7
346
+
347
+ ## 1.8.2 (2010-05-03)
348
+
349
+ * Bugfix: Include "tasks/" dir in RubyGem
350
+
351
+ ## 1.8.1 (2010-04-29)
352
+
353
+ * Bugfix: Multiple failure backend did not support requeue-ing failed jobs
354
+ * Bugfix: Fix /failed when error has no backtrace
355
+ * Bugfix: Add `Redis::DistRedis` as a valid client
356
+
357
+ ## 1.8.0 (2010-04-07)
358
+
359
+ * Jobs that never complete due to killed worker are now failed.
360
+ * Worker "working" state is now maintained by the parent, not the child.
361
+ * Stopped using deprecated redis.rb methods
362
+ * `Worker.working` race condition fixed
363
+ * `Worker#process` has been deprecated.
364
+ * Monit example fixed
365
+ * Redis::Client and Redis::Namespace can be passed to `Resque.redis=`
366
+
367
+ ## 1.7.1 (2010-04-02)
368
+
369
+ * Bugfix: Make job hook execution order consistent
370
+ * Bugfix: stdout buffering in child process
371
+
372
+ ## 1.7.0 (2010-03-31)
373
+
374
+ * Job hooks API. See docs/HOOKS.md.
375
+ * web: Hovering over dates shows a timestamp
376
+ * web: AJAXify retry action for failed jobs
377
+ * web bugfix: Fix pagination bug
378
+
379
+ ## 1.6.1 (2010-03-25)
380
+
381
+ * Bugfix: Workers may not be clearing their state correctly on
382
+ shutdown
383
+ * Added example monit config.
384
+ * Exception class is now recorded when an error is raised in a
385
+ worker.
386
+ * web: Unit tests
387
+ * web: Show namespace in header and footer
388
+ * web: Remove a queue
389
+ * web: Retry failed jobs
390
+
391
+ ## 1.6.0 (2010-03-09)
392
+
393
+ * Added `before_first_fork`, `before_fork`, and `after_fork` hooks.
394
+ * Hoptoad: Added server_environment config setting
395
+ * Hoptoad bugfix: Don't depend on RAILS_ROOT
396
+ * 1.8.6 compat fixes
397
+
398
+ ## 1.5.2 (2010-03-03)
399
+
400
+ * Bugfix: JSON check was crazy.
401
+
402
+ ## 1.5.1 (2010-03-03)
403
+
404
+ * `Job.destroy` and `Resque.dequeue` return the # of destroyed jobs.
405
+ * Hoptoad notifier improvements
406
+ * Specify the namespace with `resque-web` by passing `-N namespace`
407
+ * Bugfix: Don't crash when trying to parse invalid JSON.
408
+ * Bugfix: Non-standard namespace support
409
+ * Web: Red backgound for queue "failed" only shown if there are failed jobs.
410
+ * Web bugfix: Tabs highlight properly now
411
+ * Web bugfix: ZSET partial support in stats
412
+ * Web bugfix: Deleting failed jobs works again
413
+ * Web bugfix: Sets (or zsets, lists, etc) now paginate.
414
+
415
+ ## 1.5.0 (2010-02-17)
416
+
417
+ * Version now included in procline, e.g. `resque-1.5.0: Message`
418
+ * Web bugfix: Ignore idle works in the "working" page
419
+ * Added `Resque::Job.destroy(queue, klass, *args)`
420
+ * Added `Resque.dequeue(klass, *args)`
421
+
422
+ ## 1.4.0 (2010-02-11)
423
+
424
+ * Fallback when unable to bind QUIT and USR1 for Windows and JRuby.
425
+ * Fallback when no `Kernel.fork` is provided (for IronRuby).
426
+ * Web: Rounded corners in Firefox
427
+ * Cut down system calls in `Worker#prune_dead_workers`
428
+ * Enable switching DB in a Redis server from config
429
+ * Support USR2 and CONT to stop and start job processing.
430
+ * Web: Add example failing job
431
+ * Bugfix: `Worker#unregister_worker` shouldn't call `done_working`
432
+ * Bugfix: Example god config now restarts Resque properly.
433
+ * Multiple failure backends now permitted.
434
+ * Hoptoad failure backend updated to new API
435
+
436
+ ## 1.3.1 (2010-01-11)
437
+
438
+ * Vegas bugfix: Don't error without a config
439
+
440
+ ## 1.3.0 (2010-01-11)
441
+
442
+ * Use Vegas for resque-web
443
+ * Web Bugfix: Show proper date/time value for failed_at on Failures
444
+ * Web Bugfix: Make the / route more flexible
445
+ * Add Resque::Server.tabs array (so plugins can add their own tabs)
446
+ * Start using [Semantic Versioning](http://semver.org/)
447
+
448
+ ## 1.2.4 (2009-12-15)
449
+
450
+ * Web Bugfix: fix key links on stat page
451
+
452
+ ## 1.2.3 (2009-12-15)
453
+
454
+ * Bugfix: Fixed `rand` seeding in child processes.
455
+ * Bugfix: Better JSON encoding/decoding without Yajl.
456
+ * Bugfix: Avoid `ps` flag error on Linux
457
+ * Add `PREFIX` observance to `rake` install tasks.
458
+
459
+ ## 1.2.2 (2009-12-08)
460
+
461
+ * Bugfix: Job equality was not properly implemented.
462
+
463
+ ## 1.2.1 (2009-12-07)
464
+
465
+ * Added `rake resque:workers` task for starting multiple workers.
466
+ * 1.9.x compatibility
467
+ * Bugfix: Yajl decoder doesn't care about valid UTF-8
468
+ * config.ru loads RESQUECONFIG if the ENV variable is set.
469
+ * `resque-web` now sets RESQUECONFIG
470
+ * Job objects know if they are equal.
471
+ * Jobs can be re-queued using `Job#recreate`
472
+
473
+ ## 1.2.0 (2009-11-25)
474
+
475
+ * If USR1 is sent and no child is found, shutdown.
476
+ * Raise when a job class does not respond to `perform`.
477
+ * Added `Resque.remove_queue` for deleting a queue
478
+
479
+ ## 1.1.0 (2009-11-04)
480
+
481
+ * Bugfix: Broken ERB tag in failure UI
482
+ * Bugfix: Save the worker's ID, not the worker itself, in the failure module
483
+ * Redesigned the sinatra web interface
484
+ * Added option to clear failed jobs
485
+
486
+ ## 1.0.0 (2009-11-03)
487
+
488
+ * First release.