rocketjob 6.0.3 → 6.1.0

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: d37fc69678a20d2ab48a22daccbbff3238a4511d9fc711873c70640abe4b5d81
4
- data.tar.gz: df5bc46066bf3359c7e75549cd75545f52fde6c4b5e6c0a4dfae0b63705ca3fe
3
+ metadata.gz: fc1f3d316be0aa058cee5b22c116872a80ea5bdaf7d72db447ae13781ba6b370
4
+ data.tar.gz: 87f56a455792e45ab2ad706f0c8bd625590df9942806bbd308c5145d07e94973
5
5
  SHA512:
6
- metadata.gz: 18c563035502f1c1b9c0a37fb87f0563544ba83de0db5f7dec0ba663540a1db2a32b686cfc64c8056b99d7a3ce503b508ab206270feb277c42e79ca010debdf7
7
- data.tar.gz: 71e00ec619377e422934ae0682b4322ffea63b3db307c06ab4a33a2e24fa149f599a9a579ab3b4d699cf5684d296d861b1cbbf2abc802b55002e721e35d4070e
6
+ metadata.gz: f928a3afb886c39893ef5b5d2e13f71405c83df53c3b02826e474326c9171f87c84e595fc179a0e22cbc69d846f1da12eb268026fc06bcaf609920326159c6f4
7
+ data.tar.gz: 3b90508c45e7a09739ae53e5bb66992d80251a5b5668eb568eeba30a8da8d109bbb162b2db66e93f82ce3deb4f6cc9425175d0f9c41adb351f6c3885768db3dc
@@ -71,6 +71,7 @@ module RocketJob
71
71
  validates_presence_of :pattern, :job_class_name, :archive_directory
72
72
  validate :job_is_a_rocket_job
73
73
  validate :job_has_properties
74
+ validates_uniqueness_of :pattern, :name
74
75
 
75
76
  # State Machine events and transitions
76
77
  #
@@ -97,6 +98,7 @@ module RocketJob
97
98
  event :enable do
98
99
  transitions from: :pending, to: :enabled
99
100
  transitions from: :disabled, to: :enabled
101
+ transitions from: :failed, to: :enabled
100
102
  end
101
103
 
102
104
  event :disable do
@@ -59,23 +59,31 @@ module RocketJob
59
59
  def check_directories
60
60
  new_file_names = {}
61
61
  DirmonEntry.enabled.each do |dirmon_entry|
62
- dirmon_entry.each do |path|
63
- # Skip file size checking since S3 files are only visible once completely uploaded.
64
- unless path.partial_files_visible?
65
- logger.info("File: #{path}. Starting: #{dirmon_entry.job_class_name}")
66
- dirmon_entry.later(path)
67
- next
68
- end
62
+ check_entry(dirmon_entry, new_file_names)
63
+ end
64
+ self.previous_file_names = new_file_names
65
+ end
69
66
 
70
- # BSON Keys cannot contain periods
71
- key = path.to_s.tr(".", "_")
72
- previous_size = previous_file_names[key]
73
- # Check every few minutes for a file size change before trying to process the file.
74
- size = check_file(dirmon_entry, path, previous_size)
75
- new_file_names[key] = size if size
67
+ def check_entry(dirmon_entry, file_names)
68
+ dirmon_entry.each do |path|
69
+ # Skip file size checking since S3 files are only visible once completely uploaded.
70
+ unless path.partial_files_visible?
71
+ logger.info("File: #{path}. Starting: #{dirmon_entry.job_class_name}")
72
+ dirmon_entry.later(path)
73
+ next
76
74
  end
75
+
76
+ # BSON Keys cannot contain periods
77
+ key = path.to_s.tr(".", "_")
78
+ previous_size = previous_file_names[key]
79
+ # Check every few minutes for a file size change before trying to process the file.
80
+ size = check_file(dirmon_entry, path, previous_size)
81
+ file_names[key] = size if size
77
82
  end
78
- self.previous_file_names = new_file_names
83
+ rescue StandardError => e
84
+ logger.error("Dirmon Entry: #{dirmon_entry.id} failed. Moved to `failed` state to prevent processing again without manual intervention.", e)
85
+ dirmon_entry.fail(worker_name, e)
86
+ dirmon_entry.save(validate: false)
79
87
  end
80
88
 
81
89
  # Checks if a file should result in starting a job
@@ -1,3 +1,3 @@
1
1
  module RocketJob
2
- VERSION = "6.0.3".freeze
2
+ VERSION = "6.1.0".freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rocketjob
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.0.3
4
+ version: 6.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Reid Morrison