resque 1.2.1 → 1.2.3
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of resque might be problematic. Click here for more details.
- data/HISTORY.md +11 -0
- data/README.markdown +10 -3
- data/lib/resque.rb +0 -4
- data/lib/resque/helpers.rb +2 -2
- data/lib/resque/job.rb +1 -1
- data/lib/resque/version.rb +1 -1
- data/lib/resque/worker.rb +2 -1
- data/tasks/redis.rake +17 -9
- data/test/resque_test.rb +9 -2
- metadata +2 -2
data/HISTORY.md
CHANGED
@@ -1,3 +1,14 @@
|
|
1
|
+
## 1.2.3 (2009-12-15)
|
2
|
+
|
3
|
+
* Bugfix: Fixed `rand` seeding in child processes.
|
4
|
+
* Bugfix: Better JSON encoding/decoding without Yajl.
|
5
|
+
* Bugfix: Avoid `ps` flag error on Linux
|
6
|
+
* Add `PREFIX` observance to `rake` install tasks.
|
7
|
+
|
8
|
+
## 1.2.2 (2009-12-08)
|
9
|
+
|
10
|
+
* Bugfix: Job equality was not properly implemented.
|
11
|
+
|
1
12
|
## 1.2.1 (2009-12-07)
|
2
13
|
|
3
14
|
* Added `rake resque:workers` task for starting multiple workers.
|
data/README.markdown
CHANGED
@@ -497,6 +497,13 @@ install and run Redis for you:
|
|
497
497
|
$ rake redis:install dtach:install
|
498
498
|
$ rake redis:start
|
499
499
|
|
500
|
+
Or, if you don't have admin access on your machine:
|
501
|
+
|
502
|
+
$ git clone git://github.com/defunkt/resque.git
|
503
|
+
$ cd resque
|
504
|
+
$ PREFIX=<your_prefix> rake redis:install dtach:install
|
505
|
+
$ rake redis:start
|
506
|
+
|
500
507
|
You now have Redis running on 6379. Wait a second then hit ctrl-\ to
|
501
508
|
detach and keep it running in the background.
|
502
509
|
|
@@ -507,7 +514,7 @@ together. But, it's not that hard.
|
|
507
514
|
Resque Dependencies
|
508
515
|
-------------------
|
509
516
|
|
510
|
-
gem install redis redis-namespace yajl-ruby
|
517
|
+
gem install redis redis-namespace yajl-ruby
|
511
518
|
|
512
519
|
If you cannot install `yajl-ruby` (JRuby?), you can install the `json`
|
513
520
|
gem and Resque will use it instead.
|
@@ -520,7 +527,7 @@ Installing Resque
|
|
520
527
|
|
521
528
|
First install the gem.
|
522
529
|
|
523
|
-
$ gem install resque
|
530
|
+
$ gem install resque
|
524
531
|
|
525
532
|
Next include it in your application.
|
526
533
|
|
@@ -550,7 +557,7 @@ don't want to load your app every time rake runs.
|
|
550
557
|
|
551
558
|
First install the gem.
|
552
559
|
|
553
|
-
|
560
|
+
$ gem install resque
|
554
561
|
|
555
562
|
Next include it in your application.
|
556
563
|
|
data/lib/resque.rb
CHANGED
@@ -102,8 +102,6 @@ module Resque
|
|
102
102
|
|
103
103
|
# Given a queue name, completely deletes the queue.
|
104
104
|
def remove_queue(queue)
|
105
|
-
@watched_queues ||= {}
|
106
|
-
@watched_queues.delete(queue.to_s)
|
107
105
|
redis.srem(:queues, queue.to_s)
|
108
106
|
redis.del("queue:#{queue}")
|
109
107
|
end
|
@@ -111,8 +109,6 @@ module Resque
|
|
111
109
|
# Used internally to keep track of which queues we've created.
|
112
110
|
# Don't call this directly.
|
113
111
|
def watch_queue(queue)
|
114
|
-
@watched_queues ||= {}
|
115
|
-
return if @watched_queues[queue]
|
116
112
|
redis.sadd(:queues, queue.to_s)
|
117
113
|
end
|
118
114
|
|
data/lib/resque/helpers.rb
CHANGED
@@ -12,7 +12,7 @@ module Resque
|
|
12
12
|
if defined? Yajl
|
13
13
|
Yajl::Encoder.encode(object)
|
14
14
|
else
|
15
|
-
|
15
|
+
object.to_json
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
@@ -23,7 +23,7 @@ module Resque
|
|
23
23
|
if defined? Yajl
|
24
24
|
Yajl::Parser.parse(object, :check_utf8 => false)
|
25
25
|
else
|
26
|
-
JSON(object)
|
26
|
+
JSON.parse(object)
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
data/lib/resque/job.rb
CHANGED
data/lib/resque/version.rb
CHANGED
data/lib/resque/worker.rb
CHANGED
@@ -114,6 +114,7 @@ module Resque
|
|
114
114
|
log "got: #{job.inspect}"
|
115
115
|
|
116
116
|
if @child = fork
|
117
|
+
rand # Reseeding
|
117
118
|
procline = "resque: Forked #{@child} at #{Time.now.to_i}"
|
118
119
|
$0 = procline
|
119
120
|
log! procline
|
@@ -245,7 +246,7 @@ module Resque
|
|
245
246
|
def kill_child
|
246
247
|
if @child
|
247
248
|
log! "Killing child at #{@child}"
|
248
|
-
if system("ps -
|
249
|
+
if system("ps -o pid,state -p #{@child}")
|
249
250
|
Process.kill("KILL", @child) rescue nil
|
250
251
|
else
|
251
252
|
log! "Child #{@child} not found, restarting."
|
data/tasks/redis.rake
CHANGED
@@ -9,7 +9,12 @@ class RedisRunner
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def self.redisconfdir
|
12
|
-
|
12
|
+
server_dir = File.dirname(`which redis-server`)
|
13
|
+
conf_file = "#{server_dir}/../etc/redis.conf"
|
14
|
+
unless File.exists? conf_file
|
15
|
+
conf_file = "#{server_dir}/../../etc/redis.conf"
|
16
|
+
end
|
17
|
+
conf_file
|
13
18
|
end
|
14
19
|
|
15
20
|
def self.dtach_socket
|
@@ -65,17 +70,19 @@ namespace :redis do
|
|
65
70
|
RedisRunner.attach
|
66
71
|
end
|
67
72
|
|
68
|
-
desc 'Install the
|
73
|
+
desc 'Install the latest verison of Redis from Github (requires git, duh)'
|
69
74
|
task :install => [:about, :download, :make] do
|
75
|
+
ENV['PREFIX'] and bin_dir = "#{ENV['PREFIX']}/bin" or bin_dir = '/usr/bin'
|
70
76
|
%w(redis-benchmark redis-cli redis-server).each do |bin|
|
71
|
-
sh "
|
77
|
+
sh "cp /tmp/redis/#{bin} #{bin_dir}"
|
72
78
|
end
|
73
79
|
|
74
|
-
puts "Installed redis-benchmark, redis-cli and redis-server to
|
80
|
+
puts "Installed redis-benchmark, redis-cli and redis-server to #{bin_dir}"
|
75
81
|
|
76
|
-
|
77
|
-
|
78
|
-
|
82
|
+
ENV['PREFIX'] and conf_dir = "#{ENV['PREFIX']}/etc" or conf_dir = '/etc'
|
83
|
+
unless File.exists?("#{conf_dir}")
|
84
|
+
sh "cp /tmp/redis/redis.conf #{conf_dir}"
|
85
|
+
puts "Installed redis.conf to #{conf_dir} \n You should look at this file!"
|
79
86
|
end
|
80
87
|
end
|
81
88
|
|
@@ -115,11 +122,12 @@ namespace :dtach do
|
|
115
122
|
system('tar xzf dtach-0.8.tar.gz')
|
116
123
|
end
|
117
124
|
|
125
|
+
ENV['PREFIX'] and bin_dir = "#{ENV['PREFIX']}/bin" or bin_dir = "/usr/bin"
|
118
126
|
Dir.chdir('/tmp/dtach-0.8/')
|
119
127
|
sh 'cd /tmp/dtach-0.8/ && ./configure && make'
|
120
|
-
sh
|
128
|
+
sh "cp /tmp/dtach-0.8/dtach #{bin_dir}"
|
121
129
|
|
122
|
-
puts
|
130
|
+
puts "Dtach successfully installed to #{bin_dir}"
|
123
131
|
end
|
124
132
|
end
|
125
133
|
|
data/test/resque_test.rb
CHANGED
@@ -59,8 +59,15 @@ context "Resque" do
|
|
59
59
|
test "jobs can test for equality" do
|
60
60
|
assert Resque::Job.create(:jobs, 'SomeJob', 20, '/tmp')
|
61
61
|
assert Resque::Job.create(:jobs, 'some-job', 20, '/tmp')
|
62
|
-
|
63
|
-
|
62
|
+
assert_equal Resque.reserve(:jobs), Resque.reserve(:jobs)
|
63
|
+
|
64
|
+
assert Resque::Job.create(:jobs, 'SomeMethodJob', 20, '/tmp')
|
65
|
+
assert Resque::Job.create(:jobs, 'SomeJob', 20, '/tmp')
|
66
|
+
assert_not_equal Resque.reserve(:jobs), Resque.reserve(:jobs)
|
67
|
+
|
68
|
+
assert Resque::Job.create(:jobs, 'SomeJob', 20, '/tmp')
|
69
|
+
assert Resque::Job.create(:jobs, 'SomeJob', 30, '/tmp')
|
70
|
+
assert_not_equal Resque.reserve(:jobs), Resque.reserve(:jobs)
|
64
71
|
end
|
65
72
|
|
66
73
|
test "can put jobs on a queue by way of a method" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: resque
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Wanstrath
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-12-
|
12
|
+
date: 2009-12-15 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|