chore-core 1.8.1 → 1.8.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e8debf965223bd61c1b247c0c275c3a4f758085f
4
- data.tar.gz: 51b646120ff568753112859186b6714a3846a819
3
+ metadata.gz: f1a706f2f8f8eefe36f16cfaea8636f6fe13df8d
4
+ data.tar.gz: d4c0b0f97c85916e509ec609bd9a9e38cac6aac0
5
5
  SHA512:
6
- metadata.gz: 6b2b1f4e194ea2704734b212255135f32c504937b4152e6bc490a25401861d34da64f38e0a8e2ca2f8c7b0be5a5f1a45dd8553fbcbcf7aa0a86028c569ac5b00
7
- data.tar.gz: 264df2f96cc45d6a83a48688b602c96ee4bb2df19ad23b3d2a26c2476276ee8545798ece8e94bda0edf1a6d338e35d10fe9718d72e1ca03ff3ecfe970cb0b85a
6
+ metadata.gz: c92dcbc42098e17b5e1d3ac05860ca1b74022725a2839964f6480bc8c3f080555e950757997ad9d3d4cdbd4b122e02e467614bb481a4108dfe65c5a74b797c6c
7
+ data.tar.gz: 95baf93fe723268b499447c24464443e3e7e19ed62d5718394c7dae66bcafb44a33f47133b3973827efd5856acc4fee2aab795adc33515c18068807f9e5039aa
@@ -24,10 +24,13 @@ module Chore
24
24
  if f.flock(File::LOCK_EX | File::LOCK_NB) && f.size == 0
25
25
  begin
26
26
  f.write(job.to_json)
27
+ rescue StandardError => e
28
+ Chore.logger.error "#{e.class.name}: #{e.message}. Could not write #{job[:class]} job to '#{queue_name}' queue file."
29
+ Chore.logger.error e.backtrace.join("\n")
27
30
  ensure
28
31
  f.flock(File::LOCK_UN)
29
- break
30
32
  end
33
+ break
31
34
  end
32
35
  end
33
36
  end
@@ -21,16 +21,27 @@ module Chore
21
21
  worker.stop! if worker
22
22
  end
23
23
 
24
- # Assigns work if there isn't already a worker in progress. Otherwise, is a noop
24
+ # Assigns work if there isn't already a worker in progress. In this, the
25
+ # single worker strategy, this should never be called if the worker is in
26
+ # progress.
25
27
  def assign(work)
26
28
  if workers_available?
27
- @worker = Worker.new(work, @options)
28
- @worker.start
29
- @worker = nil
30
- true
29
+ begin
30
+ @worker = worker_klass.new(work, @options)
31
+ @worker.start
32
+ true
33
+ ensure
34
+ @worker = nil
35
+ end
36
+ else
37
+ Chore.logger.error { "#{self.class}#assign: single worker is unavailable, but assign has been re-entered: #{caller * "\n"}" }
31
38
  end
32
39
  end
33
40
 
41
+ def worker_klass
42
+ Worker
43
+ end
44
+
34
45
  # Returns true if there is currently no worker
35
46
  def workers_available?
36
47
  @worker.nil?
@@ -2,7 +2,7 @@ module Chore
2
2
  module Version #:nodoc:
3
3
  MAJOR = 1
4
4
  MINOR = 8
5
- PATCH = 1
5
+ PATCH = 2
6
6
 
7
7
  STRING = [ MAJOR, MINOR, PATCH ].join('.')
8
8
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chore-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.1
4
+ version: 1.8.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tapjoy
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-22 00:00:00.000000000 Z
11
+ date: 2016-02-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json