skiplock 1.1.4 → 1.1.7
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/README.md +8 -4
- data/bin/skiplock +4 -2
- data/lib/skiplock/job.rb +1 -1
- data/lib/skiplock/manager.rb +26 -10
- data/lib/skiplock/version.rb +1 -2
- data/lib/skiplock.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9dc423c28696ac2e1a85e87cbc5bb97d601fbbaa14a10e58f11945863d3bd04f
|
4
|
+
data.tar.gz: 459d76ff36b464020fb43986713e744500f3f0a2fb0910ee6cec6bd082147630
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a9442d819c8eff5cb5df09a58b698dc6ce72d579971519c8947a9e7341b67617d5d1977783474b0602a12ea63a8271be9ddd0320a16062d36b9adfa077f30905
|
7
|
+
data.tar.gz: 2d5fa15b5f165c8ded5aa5fa46a2a0710b53f8379c7d4c56685d37353158f365480fce6203323f20693384deaf092d69bc03efad05f35c500ec2c4a53b7a4b09
|
data/README.md
CHANGED
@@ -54,8 +54,10 @@ The library is quite small compared to other PostgreSQL job queues (eg. *delay_j
|
|
54
54
|
min_threads: 1
|
55
55
|
max_threads: 10
|
56
56
|
max_retries: 20
|
57
|
-
|
58
|
-
|
57
|
+
log_file: skiplock.log
|
58
|
+
log_level: info
|
59
|
+
log_count: 5
|
60
|
+
log_size: 10485760
|
59
61
|
namespace:
|
60
62
|
notification: custom
|
61
63
|
extensions: false
|
@@ -70,8 +72,10 @@ The library is quite small compared to other PostgreSQL job queues (eg. *delay_j
|
|
70
72
|
- **min_threads** (*integer*): sets minimum number of threads staying idle
|
71
73
|
- **max_threads** (*integer*): sets the maximum number of threads allowed to run jobs
|
72
74
|
- **max_retries** (*integer*): sets the maximum attempt a job will be retrying before it is marked expired. See `Retry system` for more details
|
73
|
-
- **
|
74
|
-
- **
|
75
|
+
- **log_file** (*string*): filename for skiplock logs; empty logfile will disable logging
|
76
|
+
- **log_level** (*string*): sets logging level (`debug, info, warn, error, fatal, unknown`)
|
77
|
+
- **log_count** (*integer*): number of log files to keep (ie: log rotation)
|
78
|
+
- **log_size** (*integer*): maximum size per log file (in bytes)
|
75
79
|
- **namespace** (*string*): sets namespace for jobs (workers will only process jobs of specified namespace)
|
76
80
|
- **notification** (*string*): sets the library to be used for notifying errors and exceptions (`auto, airbrake, bugsnag, exception_notification, custom`); using `auto` will detect library if available. See `Notification system` for more details
|
77
81
|
- **extensions** (*multi*): enable or disable the class method extension. See `ClassMethod extension` for more details
|
data/bin/skiplock
CHANGED
@@ -6,8 +6,10 @@ begin
|
|
6
6
|
op = OptionParser.new do |opts|
|
7
7
|
opts.banner = "Usage: #{File.basename($0)} [options]"
|
8
8
|
opts.on('-e', '--environment STRING', String, 'Rails environment')
|
9
|
-
opts.on('-l', '--
|
10
|
-
opts.on('-L', '--
|
9
|
+
opts.on('-l', '--log-file STRING', String, 'Log filename')
|
10
|
+
opts.on('-L', '--log-level STRING', String, 'Log level (debug, info, warn, error, fatal, unknown)')
|
11
|
+
opts.on('-m', '--log-count NUM', Integer, 'Log maximum count (default = 5)')
|
12
|
+
opts.on('-M', '--log-size NUM', Integer, 'Log maximum size (in bytes, default = 10485760)')
|
11
13
|
opts.on('-n', '--namespace STRING', String, 'Job namespace')
|
12
14
|
opts.on('-s', '--graceful-shutdown NUM', Integer, 'Number of seconds to wait for graceful shutdown')
|
13
15
|
opts.on('-r', '--max-retries NUM', Integer, 'Number of maxixum retries')
|
data/lib/skiplock/job.rb
CHANGED
@@ -44,7 +44,7 @@ module Skiplock
|
|
44
44
|
Dir.glob('tmp/skiplock/*').each do |f|
|
45
45
|
disposed = true
|
46
46
|
if self.exists?(id: File.basename(f), running: true)
|
47
|
-
job = YAML.
|
47
|
+
job = YAML.respond_to?(:unsafe_load_file) ? YAML.unsafe_load_file(f) : YAML.load_file(f)
|
48
48
|
disposed = job.dispose if job.is_a?(Skiplock::Job)
|
49
49
|
end
|
50
50
|
(File.delete(f) rescue nil) if disposed
|
data/lib/skiplock/manager.rb
CHANGED
@@ -85,8 +85,12 @@ module Skiplock
|
|
85
85
|
@logger.info " Max threads: #{@config[:max_threads]}"
|
86
86
|
@logger.info " Environment: #{Rails.env}"
|
87
87
|
@logger.info " Namespace: #{@config[:namespace] || '(nil)'}"
|
88
|
-
@logger.info "
|
89
|
-
|
88
|
+
@logger.info " Log level: #{@config[:log_level]}"
|
89
|
+
if @config[:log_file]
|
90
|
+
@logger.info " Log count: #{@config[:log_count]}"
|
91
|
+
@logger.info " Log size: #{@config[:log_size]}"
|
92
|
+
end
|
93
|
+
@logger.info " Log file: #{@config[:log_file] || '(disabled)'}"
|
90
94
|
@logger.info " Workers: #{@config[:workers]}"
|
91
95
|
@logger.info " Queues: #{@config[:queues].map {|k,v| k + '(' + v.to_s + ')'}.join(', ')}" if @config[:queues].is_a?(Hash)
|
92
96
|
@logger.info " PID: #{Process.pid}"
|
@@ -140,18 +144,30 @@ module Skiplock
|
|
140
144
|
end
|
141
145
|
|
142
146
|
def setup_logger
|
143
|
-
@config[:
|
144
|
-
|
145
|
-
|
147
|
+
@config[:log_level] = 'info' unless ['debug','info','warn','error','fatal','unknown'].include?(@config[:log_level].to_s)
|
148
|
+
if defined?(ActiveSupport::BroadcastLogger)
|
149
|
+
@logger = ActiveSupport::BroadcastLogger.new(::Logger.new(STDOUT))
|
150
|
+
else
|
151
|
+
@logger = ActiveSupport::Logger.new(STDOUT)
|
152
|
+
end
|
153
|
+
@logger.level = @config[:log_level].to_sym
|
146
154
|
Skiplock.logger = @logger
|
147
|
-
if @config[:
|
148
|
-
|
155
|
+
if @config[:log_file].to_s.length > 0
|
156
|
+
if defined?(ActiveSupport::BroadcastLogger)
|
157
|
+
@logger.broadcast_to(::Logger.new(File.join(Rails.root, 'log', @config[:log_file].to_s), @config[:log_count] || 5, @config[:log_size] || 10485760))
|
158
|
+
else
|
159
|
+
@logger.extend(ActiveSupport::Logger.broadcast(::Logger.new(File.join(Rails.root, 'log', @config[:log_file].to_s), @config[:log_count] || 5, @config[:log_size] || 10485760)))
|
160
|
+
end
|
149
161
|
ActiveJob::Base.logger = nil
|
150
162
|
end
|
151
163
|
if @config[:standalone]
|
152
|
-
|
153
|
-
|
154
|
-
|
164
|
+
if defined?(ActiveSupport::BroadcastLogger)
|
165
|
+
Rails.logger = @logger
|
166
|
+
else
|
167
|
+
Rails.logger.reopen('/dev/null') rescue Rails.logger.reopen('NUL') # supports Windows NUL device
|
168
|
+
Rails.logger.level = @logger.level
|
169
|
+
Rails.logger.extend(ActiveSupport::Logger.broadcast(@logger))
|
170
|
+
end
|
155
171
|
end
|
156
172
|
rescue Exception => ex
|
157
173
|
@logger.error "Exception with logger: #{ex.to_s}"
|
data/lib/skiplock/version.rb
CHANGED
data/lib/skiplock.rb
CHANGED
@@ -11,7 +11,7 @@ require 'skiplock/worker'
|
|
11
11
|
require 'skiplock/version'
|
12
12
|
|
13
13
|
module Skiplock
|
14
|
-
DEFAULT_CONFIG = { 'graceful_shutdown' => 15, 'min_threads' => 1, 'max_threads' => 10, 'max_retries' => 20, '
|
14
|
+
DEFAULT_CONFIG = { 'graceful_shutdown' => 15, 'min_threads' => 1, 'max_threads' => 10, 'max_retries' => 20, 'log_file' => 'skiplock.log', 'log_level' => 'info', 'log_count' => 5, 'log_size' => 10485760, 'namespace' => nil, 'notification' => 'custom', 'extensions' => false, 'purge_completion' => true, 'queues' => { 'default' => 100, 'mailers' => 999 }, 'workers' => 0 }.freeze
|
15
15
|
|
16
16
|
def self.logger=(l)
|
17
17
|
@logger = l
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: skiplock
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tin Vo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-06-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activejob
|