queue_classic 2.0.0rc11 → 2.0.0rc12
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.
- data/lib/queue_classic.rb +2 -2
- data/readme.md +1 -1
- metadata +14 -4
- data/lib/queue_classic/scrolls.rb +0 -127
data/lib/queue_classic.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
+
require "scrolls"
|
1
2
|
require "pg"
|
2
3
|
require "uri"
|
3
4
|
|
4
5
|
$: << File.expand_path(__FILE__, "lib")
|
5
6
|
|
6
|
-
require "queue_classic/scrolls"
|
7
7
|
require "queue_classic/okjson"
|
8
8
|
require "queue_classic/conn"
|
9
9
|
require "queue_classic/queries"
|
@@ -11,7 +11,7 @@ require "queue_classic/queue"
|
|
11
11
|
require "queue_classic/worker"
|
12
12
|
|
13
13
|
module QC
|
14
|
-
# ENV["
|
14
|
+
# ENV["LOG_LEVEL"] is used in Scrolls
|
15
15
|
Scrolls::Log.start
|
16
16
|
|
17
17
|
Root = File.expand_path("..", File.dirname(__FILE__))
|
data/readme.md
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: queue_classic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.0rc12
|
5
5
|
prerelease: 5
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-02-29 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: pg
|
16
|
-
requirement: &
|
16
|
+
requirement: &11432220 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,7 +21,18 @@ dependencies:
|
|
21
21
|
version: 0.13.2
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *11432220
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: scrolls
|
27
|
+
requirement: &11431140 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ~>
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 0.0.8
|
33
|
+
type: :runtime
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *11431140
|
25
36
|
description: queue_classic is a queueing library for Ruby apps. (Rails, Sinatra, Etc...)
|
26
37
|
queue_classic features asynchronous job polling, database maintained locks and no
|
27
38
|
ridiculous dependencies. As a matter of fact, queue_classic only requires pg.
|
@@ -36,7 +47,6 @@ files:
|
|
36
47
|
- lib/queue_classic/conn.rb
|
37
48
|
- lib/queue_classic/okjson.rb
|
38
49
|
- lib/queue_classic/worker.rb
|
39
|
-
- lib/queue_classic/scrolls.rb
|
40
50
|
- lib/queue_classic/queue.rb
|
41
51
|
- lib/queue_classic/tasks.rb
|
42
52
|
- lib/queue_classic/queries.rb
|
@@ -1,127 +0,0 @@
|
|
1
|
-
require "thread"
|
2
|
-
|
3
|
-
module Scrolls
|
4
|
-
extend self
|
5
|
-
|
6
|
-
def log(data, &blk)
|
7
|
-
Log.log(data, &blk)
|
8
|
-
end
|
9
|
-
|
10
|
-
def log_exception(data, e)
|
11
|
-
Log.log_exception(data, e)
|
12
|
-
end
|
13
|
-
|
14
|
-
module Log
|
15
|
-
extend self
|
16
|
-
|
17
|
-
LOG_LEVEL = (ENV["QC_LOG_LEVEL"] || 3).to_i
|
18
|
-
LOG_LEVEL_MAP = {
|
19
|
-
"fatal" => 0,
|
20
|
-
"error" => 1,
|
21
|
-
"warn" => 2,
|
22
|
-
"info" => 3,
|
23
|
-
"debug" => 4
|
24
|
-
}
|
25
|
-
|
26
|
-
attr_accessor :stream
|
27
|
-
|
28
|
-
def start(out = nil)
|
29
|
-
# This allows log_exceptions below to pick up the defined output,
|
30
|
-
# otherwise stream out to STDERR
|
31
|
-
@defined = out.nil? ? false : true
|
32
|
-
sync_stream(out)
|
33
|
-
end
|
34
|
-
|
35
|
-
def sync_stream(out = nil)
|
36
|
-
out = STDOUT if out.nil?
|
37
|
-
@stream = out
|
38
|
-
@stream.sync = true
|
39
|
-
end
|
40
|
-
|
41
|
-
def mtx
|
42
|
-
@mtx ||= Mutex.new
|
43
|
-
end
|
44
|
-
|
45
|
-
def write(data)
|
46
|
-
if log_level_ok?(data[:level])
|
47
|
-
msg = unparse(data)
|
48
|
-
mtx.synchronize do
|
49
|
-
@stream.puts(msg)
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
def unparse(data)
|
55
|
-
data.map do |(k, v)|
|
56
|
-
if (v == true)
|
57
|
-
k.to_s
|
58
|
-
elsif v.is_a?(Float)
|
59
|
-
"#{k}=#{format("%.3f", v)}"
|
60
|
-
elsif v.nil?
|
61
|
-
nil
|
62
|
-
else
|
63
|
-
v_str = v.to_s
|
64
|
-
if (v_str =~ /^[a-zA-z0-9\-\_\.]+$/)
|
65
|
-
"#{k}=#{v_str}"
|
66
|
-
else
|
67
|
-
"#{k}=\"#{v_str.sub(/".*/, "...")}\""
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end.compact.join(" ")
|
71
|
-
end
|
72
|
-
|
73
|
-
def log(data, &blk)
|
74
|
-
unless blk
|
75
|
-
write(data)
|
76
|
-
else
|
77
|
-
start = Time.now
|
78
|
-
res = nil
|
79
|
-
log(data.merge(:at => :start))
|
80
|
-
begin
|
81
|
-
res = yield
|
82
|
-
rescue StandardError, Timeout::Error => e
|
83
|
-
log(data.merge(
|
84
|
-
:at => :exception,
|
85
|
-
:reraise => true,
|
86
|
-
:class => e.class,
|
87
|
-
:message => e.message,
|
88
|
-
:exception_id => e.object_id.abs,
|
89
|
-
:elapsed => Time.now - start
|
90
|
-
))
|
91
|
-
raise(e)
|
92
|
-
end
|
93
|
-
log(data.merge(:at => :finish, :elapsed => Time.now - start))
|
94
|
-
res
|
95
|
-
end
|
96
|
-
end
|
97
|
-
|
98
|
-
def log_exception(data, e)
|
99
|
-
sync_stream(STDERR) unless @defined
|
100
|
-
log(data.merge(
|
101
|
-
:exception => true,
|
102
|
-
:class => e.class,
|
103
|
-
:message => e.message,
|
104
|
-
:exception_id => e.object_id.abs
|
105
|
-
))
|
106
|
-
if e.backtrace
|
107
|
-
bt = e.backtrace.reverse
|
108
|
-
bt[0, bt.size-6].each do |line|
|
109
|
-
log(data.merge(
|
110
|
-
:exception => true,
|
111
|
-
:exception_id => e.object_id.abs,
|
112
|
-
:site => line.gsub(/[`'"]/, "")
|
113
|
-
))
|
114
|
-
end
|
115
|
-
end
|
116
|
-
end
|
117
|
-
|
118
|
-
def log_level_ok?(level)
|
119
|
-
if level
|
120
|
-
LOG_LEVEL_MAP[level.to_s] <= LOG_LEVEL
|
121
|
-
else
|
122
|
-
true
|
123
|
-
end
|
124
|
-
end
|
125
|
-
|
126
|
-
end
|
127
|
-
end
|