delayed_job_mongoid 2.2.0 → 2.3.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 +4 -4
- data/CHANGELOG.md +24 -23
- data/LICENSE.md +1 -1
- data/README.md +5 -5
- data/delayed_job_mongoid.gemspec +4 -4
- data/lib/delayed/backend/mongoid.rb +24 -24
- data/lib/delayed/yaml/psych_ext.rb +14 -0
- data/lib/delayed/yaml/yaml_ext.rb +3 -0
- data/lib/delayed_job_mongoid.rb +1 -0
- metadata +9 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1fe065836eaec3db84fa083b20a3ab41fdff6729
|
4
|
+
data.tar.gz: 2498d16f780f951e322a4af828718eb287db44af
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4a5e39815bbf5cbd4380308e37f45591debbbb25fdf6c98ce9e2cdd2d150de17619218f1b886d88956cf71d5521529e44a37df06141e9345ff720dc27a03f383
|
7
|
+
data.tar.gz: 233d203872d4380c2cf79f79b26b0135c73d745b6e9bf146ba726196c9ab3ad119278b877c51e6c5b13091c6b69084f2243e1f21a07ed14991a5d6b450f334e2
|
data/CHANGELOG.md
CHANGED
@@ -1,27 +1,28 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
*
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
* [#
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
* Added
|
18
|
-
|
19
|
-
|
20
|
-
|
1
|
+
### 2.3.0 (2017/02/13)
|
2
|
+
|
3
|
+
* [#72](https://github.com/collectiveidea/delayed_job_mongoid/pull/72): Fix: Unknown alias: 1 (Psych::BadAlias) when referencing an object twice from the object being serialized - [@dblock](https://github.com/dblock), [@maxjacobson](https://github.com/maxjacobson).
|
4
|
+
* [#71](https://github.com/collectiveidea/delayed_job_mongoid/pull/71): Support Mongoid 6.0 - [@dblock](https://github.com/dblock).
|
5
|
+
|
6
|
+
### 2.2.0 (2015/09/24)
|
7
|
+
|
8
|
+
* [#58](https://github.com/collectiveidea/delayed_job_mongoid/pull/58): Support Mongoid 5.0 - [@sferik](https://github.com/sferik).
|
9
|
+
|
10
|
+
### 2.1.0 (2014/05/09)
|
11
|
+
|
12
|
+
* [#38](https://github.com/collectiveidea/delayed_job_mongoid/pull/38): Fix clearing identity map before each job - [@srleo](https://github.com/srleo).
|
13
|
+
* [#43](https://github.com/collectiveidea/delayed_job_mongoid/pull/43): Compatibility with Mongoid 4.x and Delayed Job 4.x - [@dblock](https://github.com/dblock).
|
14
|
+
|
15
|
+
### 2.0.0 (2012/08/02)
|
16
|
+
|
17
|
+
* Added code coverage with SimpleCov - [@sferik](https://github.com/sferik).
|
18
|
+
* Added Mongoid 3.0 support - [@sferik](https://github.com/sferik), [@asavartsov](https://github.com/asavartsov).
|
19
|
+
|
20
|
+
### 1.0.2 (2010/01/12)
|
21
|
+
|
21
22
|
* Fix a potential memory leak inside mongo when reserving jobs on mongo 1.6+
|
22
23
|
* Fixed gemspec to work with Mongoid 2.0 RC and Rubygems 1.4
|
23
24
|
|
24
|
-
1.0.1
|
25
|
-
|
26
|
-
* Use MongoDB's findAndModify to reserve the next available job in one atomic operation
|
25
|
+
### 1.0.1 (2010/12/01)
|
26
|
+
|
27
|
+
* Use MongoDB's findAndModify to reserve the next available job in one atomic operation - [@beljun](https://github.com/beljun).
|
27
28
|
* Better index
|
data/LICENSE.md
CHANGED
data/README.md
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
# DelayedJob Mongoid backend
|
2
2
|
|
3
|
-
[](http://badge.fury.io/rb/delayed_job_mongoid)
|
4
|
+
[](https://travis-ci.org/collectiveidea/delayed_job_mongoid)
|
5
|
+
[](https://gemnasium.com/collectiveidea/delayed_job_mongoid)
|
6
|
+
[](https://codeclimate.com/github/collectiveidea/delayed_job_mongoid)
|
7
|
+
[](https://coveralls.io/github/collectiveidea/delayed_job_mongoid?branch=master)
|
8
8
|
|
9
9
|
[gem]: https://rubygems.org/gems/delayed_job_mongoid
|
10
10
|
[travis]: http://travis-ci.org/collectiveidea/delayed_job_mongoid
|
data/delayed_job_mongoid.gemspec
CHANGED
@@ -2,15 +2,15 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |spec|
|
4
4
|
spec.add_dependency 'delayed_job', ['>= 3.0', '< 5']
|
5
|
-
spec.add_dependency 'mongoid', ['>= 3.0', '<
|
6
|
-
spec.add_dependency 'mongoid-compatibility'
|
5
|
+
spec.add_dependency 'mongoid', ['>= 3.0', '< 7']
|
6
|
+
spec.add_dependency 'mongoid-compatibility', '>= 0.4.0'
|
7
7
|
spec.authors = ['Chris Gaffney', 'Brandon Keepers', 'Erik Michaels-Ober']
|
8
8
|
spec.email = ['chris@collectiveidea.com', 'brandon@opensoul.com', 'sferik@gmail.com']
|
9
|
-
spec.files = %w
|
9
|
+
spec.files = %w(CHANGELOG.md CONTRIBUTING.md LICENSE.md README.md delayed_job_mongoid.gemspec) + Dir['lib/**/*.rb']
|
10
10
|
spec.homepage = 'http://github.com/collectiveidea/delayed_job_mongoid'
|
11
11
|
spec.licenses = ['MIT']
|
12
12
|
spec.name = 'delayed_job_mongoid'
|
13
13
|
spec.require_paths = ['lib']
|
14
14
|
spec.summary = 'Mongoid backend for delayed_job'
|
15
|
-
spec.version = '2.
|
15
|
+
spec.version = '2.3.0'
|
16
16
|
end
|
@@ -11,17 +11,17 @@ module Delayed
|
|
11
11
|
include ::Mongoid::Timestamps
|
12
12
|
include Delayed::Backend::Base
|
13
13
|
|
14
|
-
field :priority, :
|
15
|
-
field :attempts, :
|
16
|
-
field :handler, :
|
17
|
-
field :run_at, :
|
18
|
-
field :locked_at, :
|
19
|
-
field :locked_by, :
|
20
|
-
field :failed_at, :
|
21
|
-
field :last_error, :
|
22
|
-
field :queue, :
|
14
|
+
field :priority, type: Integer, default: 0
|
15
|
+
field :attempts, type: Integer, default: 0
|
16
|
+
field :handler, type: String
|
17
|
+
field :run_at, type: Time
|
18
|
+
field :locked_at, type: Time
|
19
|
+
field :locked_by, type: String
|
20
|
+
field :failed_at, type: Time
|
21
|
+
field :last_error, type: String
|
22
|
+
field :queue, type: String
|
23
23
|
|
24
|
-
index :
|
24
|
+
index locked_by: -1, priority: 1, run_at: 1
|
25
25
|
|
26
26
|
before_save :set_default_run_at
|
27
27
|
|
@@ -37,15 +37,15 @@ module Delayed
|
|
37
37
|
|
38
38
|
criteria = reservation_criteria worker, right_now, max_run_time
|
39
39
|
|
40
|
-
if ::Mongoid::Compatibility::Version.mongoid5?
|
40
|
+
if ::Mongoid::Compatibility::Version.mongoid5? || ::Mongoid::Compatibility::Version.mongoid6?
|
41
41
|
criteria.find_one_and_update(
|
42
|
-
{'$set' => {:
|
43
|
-
:
|
42
|
+
{ '$set' => { locked_at: right_now, locked_by: worker.name } },
|
43
|
+
return_document: :after
|
44
44
|
)
|
45
45
|
else
|
46
46
|
criteria.find_and_modify(
|
47
|
-
{'$set' => {:
|
48
|
-
:
|
47
|
+
{ '$set' => { locked_at: right_now, locked_by: worker.name } },
|
48
|
+
new: true
|
49
49
|
)
|
50
50
|
end
|
51
51
|
end
|
@@ -57,17 +57,17 @@ module Delayed
|
|
57
57
|
# @api private
|
58
58
|
def self.reservation_criteria(worker, right_now, max_run_time)
|
59
59
|
criteria = where(
|
60
|
-
:
|
61
|
-
:
|
60
|
+
run_at: { '$lte' => right_now },
|
61
|
+
failed_at: nil
|
62
62
|
).any_of(
|
63
|
-
{:
|
64
|
-
{:
|
65
|
-
:
|
63
|
+
{ locked_by: worker.name },
|
64
|
+
{ locked_at: nil },
|
65
|
+
locked_at: { '$lt' => (right_now - max_run_time) }
|
66
66
|
)
|
67
67
|
|
68
|
-
criteria = criteria.gte(:
|
69
|
-
criteria = criteria.lte(:
|
70
|
-
criteria = criteria.any_in(:
|
68
|
+
criteria = criteria.gte(priority: Worker.min_priority.to_i) if Worker.min_priority
|
69
|
+
criteria = criteria.lte(priority: Worker.max_priority.to_i) if Worker.max_priority
|
70
|
+
criteria = criteria.any_in(queue: Worker.queues) if Worker.queues.any?
|
71
71
|
criteria = criteria.desc(:locked_by).asc(:priority).asc(:run_at)
|
72
72
|
|
73
73
|
criteria
|
@@ -75,7 +75,7 @@ module Delayed
|
|
75
75
|
|
76
76
|
# When a worker is exiting, make sure we don't have any locked jobs.
|
77
77
|
def self.clear_locks!(worker_name)
|
78
|
-
where(:
|
78
|
+
where(locked_by: worker_name).update_all(locked_at: nil, locked_by: nil)
|
79
79
|
end
|
80
80
|
|
81
81
|
def reload(*args)
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Delayed
|
2
|
+
module PsychExt
|
3
|
+
class ToRuby < Psych::Visitors::ToRuby
|
4
|
+
# see https://github.com/collectiveidea/delayed_job_mongoid/pull/65
|
5
|
+
alias _visit_Psych_Nodes_Mapping visit_Psych_Nodes_Mapping
|
6
|
+
|
7
|
+
def visit_Psych_Nodes_Mapping(object) # rubocop:disable MethodName
|
8
|
+
document = _visit_Psych_Nodes_Mapping(object)
|
9
|
+
register(object, document) if document
|
10
|
+
document
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/lib/delayed_job_mongoid.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: delayed_job_mongoid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Gaffney
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2017-02-13 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: delayed_job
|
@@ -41,7 +41,7 @@ dependencies:
|
|
41
41
|
version: '3.0'
|
42
42
|
- - "<"
|
43
43
|
- !ruby/object:Gem::Version
|
44
|
-
version: '
|
44
|
+
version: '7'
|
45
45
|
type: :runtime
|
46
46
|
prerelease: false
|
47
47
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -51,21 +51,21 @@ dependencies:
|
|
51
51
|
version: '3.0'
|
52
52
|
- - "<"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '7'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: mongoid-compatibility
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 0.4.0
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: 0.4.0
|
69
69
|
description:
|
70
70
|
email:
|
71
71
|
- chris@collectiveidea.com
|
@@ -83,6 +83,8 @@ files:
|
|
83
83
|
- lib/delayed/backend/mongoid.rb
|
84
84
|
- lib/delayed/plugins.rb
|
85
85
|
- lib/delayed/serialization/mongoid.rb
|
86
|
+
- lib/delayed/yaml/psych_ext.rb
|
87
|
+
- lib/delayed/yaml/yaml_ext.rb
|
86
88
|
- lib/delayed_job_mongoid.rb
|
87
89
|
homepage: http://github.com/collectiveidea/delayed_job_mongoid
|
88
90
|
licenses:
|
@@ -104,9 +106,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
104
106
|
version: '0'
|
105
107
|
requirements: []
|
106
108
|
rubyforge_project:
|
107
|
-
rubygems_version: 2.
|
109
|
+
rubygems_version: 2.5.1
|
108
110
|
signing_key:
|
109
111
|
specification_version: 4
|
110
112
|
summary: Mongoid backend for delayed_job
|
111
113
|
test_files: []
|
112
|
-
has_rdoc:
|