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 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["QC_LOG_LEVEL"] is used in Scrolls
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
@@ -1,6 +1,6 @@
1
1
  # queue_classic
2
2
 
3
- v2.0.0rc9
3
+ v2.0.0rc12
4
4
 
5
5
  queue_classic is a PostgreSQL-backed queueing library that is focused on
6
6
  concurrent job locking, minimizing database load & providing a simple &
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.0rc11
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: &14553400 !ruby/object:Gem::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: *14553400
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