threaded_in_memory_queue 0.0.1 → 0.0.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/.gitignore +2 -0
- data/README.md +1 -1
- data/lib/threaded_in_memory_queue.rb +11 -2
- data/lib/threaded_in_memory_queue/inline.rb +3 -3
- data/lib/threaded_in_memory_queue/version.rb +1 -1
- data/test/threaded_in_memory_queue_test.rb +9 -36
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 38361b605ed853eeb5af0accecf034f729c7b31b
|
4
|
+
data.tar.gz: d34e9ac4ee7f2ae5facf364fbc0234d8f01e16e5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e5c37e3dd37bb4d273d2195792023148f81d278cb17b19f6d13a5f3c54ccb202a6ddcf6525c8807f5366170f76ad2a9dc91a722b12a33c04978e250e120a60a7
|
7
|
+
data.tar.gz: 3ae6c5d6bd2f0ebc9a7301ed06defad3c63a537cef3ba6915449f103d48ed61c985c294df2bb6e77b43dd1b6dacffb9c5723bb03c8faec23879ae3ba2c45f17a
|
data/.gitignore
ADDED
data/README.md
CHANGED
@@ -44,7 +44,7 @@ Then to enqueue a task to be run in the background use `ThreadedInMemoryQueue.en
|
|
44
44
|
|
45
45
|
```ruby
|
46
46
|
repo = Repo.last
|
47
|
-
ThreadedInMemoryQueue.enqueue(Archive, repo.
|
47
|
+
ThreadedInMemoryQueue.enqueue(Archive, repo.id, 'staging')
|
48
48
|
```
|
49
49
|
|
50
50
|
The first argument is a class that defines the task to be processed and the rest of the arguments are passed to the task when it is run.
|
@@ -19,12 +19,21 @@ module ThreadedInMemoryQueue
|
|
19
19
|
return self
|
20
20
|
end
|
21
21
|
|
22
|
+
def self.started?
|
23
|
+
return false unless master
|
24
|
+
master.alive?
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.stopped?
|
28
|
+
!started?
|
29
|
+
end
|
30
|
+
|
22
31
|
def self.master
|
23
|
-
|
32
|
+
@master
|
24
33
|
end
|
25
34
|
|
26
35
|
def self.master=(master)
|
27
|
-
|
36
|
+
@master = master
|
28
37
|
end
|
29
38
|
|
30
39
|
def self.enqueue(klass, *args)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module ThreadedInMemoryQueue
|
2
2
|
module Inline
|
3
3
|
def inline
|
4
|
-
|
4
|
+
@inline
|
5
5
|
end
|
6
6
|
|
7
7
|
def inline?
|
@@ -9,7 +9,7 @@ module ThreadedInMemoryQueue
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def inline=(inline)
|
12
|
-
|
12
|
+
@inline = inline
|
13
13
|
end
|
14
14
|
end
|
15
|
-
end
|
15
|
+
end
|
@@ -2,55 +2,28 @@ require 'test_helper'
|
|
2
2
|
|
3
3
|
class ThreadedInMemoryQueueTest < Test::Unit::TestCase
|
4
4
|
|
5
|
-
def
|
6
|
-
Dummy.expects(:process).with(1).once
|
7
|
-
Dummy.expects(:process).with(2).once
|
8
|
-
|
5
|
+
def test_started?
|
9
6
|
ThreadedInMemoryQueue.start
|
10
|
-
|
11
|
-
job = Proc.new {|x| Dummy.process(x) }
|
12
|
-
|
13
|
-
ThreadedInMemoryQueue.enqueue(job, 1)
|
14
|
-
ThreadedInMemoryQueue.enqueue(job, 2)
|
7
|
+
assert ThreadedInMemoryQueue.started?
|
15
8
|
ThreadedInMemoryQueue.stop
|
9
|
+
sleep 1
|
10
|
+
assert ThreadedInMemoryQueue.stopped?
|
11
|
+
refute ThreadedInMemoryQueue.started?
|
16
12
|
end
|
17
13
|
|
18
|
-
def
|
14
|
+
def test_enqueues
|
19
15
|
Dummy.expects(:process).with(1).once
|
20
16
|
Dummy.expects(:process).with(2).once
|
21
17
|
|
22
18
|
ThreadedInMemoryQueue.start
|
23
19
|
|
24
|
-
job =
|
25
|
-
def self.call(num)
|
26
|
-
Dummy.process(num)
|
27
|
-
end
|
28
|
-
end
|
20
|
+
job = Proc.new {|x| Dummy.process(x) }
|
29
21
|
|
30
22
|
ThreadedInMemoryQueue.enqueue(job, 1)
|
31
23
|
ThreadedInMemoryQueue.enqueue(job, 2)
|
32
24
|
ThreadedInMemoryQueue.stop
|
33
|
-
|
34
|
-
|
35
|
-
def test_configure_size
|
36
|
-
size = 1
|
37
|
-
ThreadedInMemoryQueue.start(size: size)
|
38
|
-
assert_equal size, ThreadedInMemoryQueue.master.workers.size
|
39
|
-
ThreadedInMemoryQueue.stop
|
40
|
-
|
41
|
-
size = 3
|
42
|
-
ThreadedInMemoryQueue.start(size: size)
|
43
|
-
assert_equal size, ThreadedInMemoryQueue.master.workers.size
|
44
|
-
ThreadedInMemoryQueue.stop
|
45
|
-
|
46
|
-
size = 6
|
47
|
-
ThreadedInMemoryQueue.start(size: size)
|
48
|
-
assert_equal size, ThreadedInMemoryQueue.master.workers.size
|
49
|
-
ThreadedInMemoryQueue.stop
|
50
|
-
|
51
|
-
size = 16
|
52
|
-
ThreadedInMemoryQueue.start(size: size)
|
53
|
-
assert_equal size, ThreadedInMemoryQueue.master.workers.size
|
25
|
+
ensure
|
54
26
|
ThreadedInMemoryQueue.stop
|
55
27
|
end
|
28
|
+
|
56
29
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: threaded_in_memory_queue
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Richard Schneeman
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-09-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -45,6 +45,7 @@ executables: []
|
|
45
45
|
extensions: []
|
46
46
|
extra_rdoc_files: []
|
47
47
|
files:
|
48
|
+
- .gitignore
|
48
49
|
- .travis.yml
|
49
50
|
- Gemfile
|
50
51
|
- Gemfile.lock
|