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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1ebc3d59d7709f435ee1f2ecb3773b0f8d64361c80c01a23c8a4a4bd89972874
4
- data.tar.gz: 8f3a5cbdbfe91b9ef61207a4655552363b9a0fdd4d8caf29c1c6e83c7135f80e
3
+ metadata.gz: 9dc423c28696ac2e1a85e87cbc5bb97d601fbbaa14a10e58f11945863d3bd04f
4
+ data.tar.gz: 459d76ff36b464020fb43986713e744500f3f0a2fb0910ee6cec6bd082147630
5
5
  SHA512:
6
- metadata.gz: a4d693051b2bfc567ccd1407ea26f8105ab3997e2e75452fdb037c0b2bd8d235c0075a320703e0c0b0ed77d2f326bcbf1efebdf87f0a3df82c9bee23111011d0
7
- data.tar.gz: 2554c0c9449429890fcdd7614791cae475e3ede8299c70df87ed94857a2ec165e89d1770d70e226cd0f06db8ae4d49d523de377e536043f6bf8f98da5a21aa2b
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
- logfile: skiplock.log
58
- loglevel: info
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
- - **logfile** (*string*): filename for skiplock logs; empty logfile will disable logging
74
- - **loglevel** (*string*): sets logging level (`debug, info, warn, error, fatal, unknown`)
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', '--logfile STRING', String, 'Log filename')
10
- opts.on('-L', '--loglevel STRING', String, 'Log level (debug, info, warn, error, fatal, unknown)')
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.load_file(f) rescue nil
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
@@ -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 " Loglevel: #{@config[:loglevel]}"
89
- @logger.info " Logfile: #{@config[:logfile] || '(disabled)'}"
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[:loglevel] = 'info' unless ['debug','info','warn','error','fatal','unknown'].include?(@config[:loglevel].to_s)
144
- @logger = ActiveSupport::BroadcastLogger.new(::Logger.new(STDOUT))
145
- @logger.level = @config[:loglevel].to_sym
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[:logfile].to_s.length > 0
148
- @logger.broadcast_to(::Logger.new(File.join(Rails.root, 'log', @config[:logfile].to_s), 'daily'))
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
- Rails.logger.reopen('/dev/null') rescue Rails.logger.reopen('NUL') # supports Windows NUL device
153
- Rails.logger.level = @logger.level
154
- Rails.logger.extend(ActiveSupport::Logger.broadcast(@logger))
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}"
@@ -1,4 +1,3 @@
1
1
  module Skiplock
2
- VERSION = Version = '1.1.4'
2
+ VERSION = Version = '1.1.7'
3
3
  end
4
-
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, 'logfile' => 'skiplock.log', 'loglevel' => 'info', 'namespace' => nil, 'notification' => 'custom', 'extensions' => false, 'purge_completion' => true, 'queues' => { 'default' => 100, 'mailers' => 999 }, 'workers' => 0 }.freeze
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
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: 2023-10-24 00:00:00.000000000 Z
11
+ date: 2024-06-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activejob