lex-tasker 0.1.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.circleci/config.yml +39 -0
- data/.rubocop.yml +34 -0
- data/Dockerfile +9 -0
- data/Gemfile +0 -3
- data/Gemfile.lock +69 -0
- data/README.md +1 -37
- data/bitbucket-pipelines.yml +19 -0
- data/docker_deploy.rb +13 -0
- data/lex-tasker.gemspec +33 -0
- data/lib/legion/extensions/tasker.rb +5 -70
- data/lib/legion/extensions/tasker/actors/check_subtask.rb +21 -0
- data/lib/legion/extensions/tasker/actors/fetch_delayed.rb +25 -0
- data/lib/legion/extensions/tasker/actors/fetch_delayed_push.rb +29 -0
- data/lib/legion/extensions/tasker/actors/log.rb +13 -0
- data/lib/legion/extensions/tasker/actors/task_manager.rb +21 -0
- data/lib/legion/extensions/tasker/actors/updater.rb +21 -0
- data/lib/legion/extensions/tasker/helpers/base.rb +11 -0
- data/lib/legion/extensions/tasker/helpers/fetch_delayed.rb +66 -0
- data/lib/legion/extensions/tasker/helpers/find_subtask.rb +49 -0
- data/lib/legion/extensions/tasker/runners/check_subtask.rb +97 -0
- data/lib/legion/extensions/tasker/runners/fetch_delayed.rb +71 -0
- data/lib/legion/extensions/tasker/runners/log.rb +50 -0
- data/lib/legion/extensions/tasker/runners/task_manager.rb +28 -0
- data/lib/legion/extensions/tasker/runners/updater.rb +31 -0
- data/lib/legion/extensions/tasker/transport.rb +30 -0
- data/lib/legion/extensions/tasker/transport/exchanges/task.rb +8 -0
- data/lib/legion/extensions/tasker/transport/messages/fetch_delayed.rb +11 -0
- data/lib/legion/extensions/tasker/transport/queues/check_subtask.rb +18 -0
- data/lib/legion/extensions/tasker/transport/queues/fetch_delayed.rb +21 -0
- data/lib/legion/extensions/tasker/transport/queues/lex_register.rb +15 -0
- data/lib/legion/extensions/tasker/transport/queues/subtask.rb +11 -0
- data/lib/legion/extensions/tasker/transport/queues/task_log.rb +11 -0
- data/lib/legion/extensions/tasker/transport/queues/task_mananger.rb +15 -0
- data/lib/legion/extensions/tasker/transport/queues/updater.rb +11 -0
- data/lib/legion/extensions/tasker/version.rb +1 -1
- metadata +77 -23
- data/.idea/encodings.xml +0 -4
- data/.idea/legion-extensions-tasker.iml +0 -8
- data/.idea/misc.xml +0 -7
- data/.idea/modules.xml +0 -8
- data/.idea/workspace.xml +0 -7
- data/.travis.yml +0 -7
- data/bin/console +0 -14
- data/bin/setup +0 -8
- data/legion-extensions-tasker.gemspec +0 -30
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'legion/transport/exchanges/task'
|
2
|
+
require 'legion/extensions/transport'
|
3
|
+
|
4
|
+
module Legion::Extensions::Tasker
|
5
|
+
module Transport
|
6
|
+
extend Legion::Extensions::Transport
|
7
|
+
def self.e_to_q
|
8
|
+
[
|
9
|
+
{
|
10
|
+
to: 'updater',
|
11
|
+
routing_key: 'task.update'
|
12
|
+
},
|
13
|
+
{
|
14
|
+
to: 'log',
|
15
|
+
routing_key: 'task.logs.#'
|
16
|
+
}, {
|
17
|
+
to: 'check_subtask',
|
18
|
+
routing_key: 'task.subtask.check'
|
19
|
+
}, {
|
20
|
+
to: 'fetch_delayed',
|
21
|
+
routing_key: 'fetch.delayed'
|
22
|
+
}, {
|
23
|
+
from: 'tasker',
|
24
|
+
to: 'task_manager',
|
25
|
+
routing_key: 'task.task_manager.#'
|
26
|
+
}
|
27
|
+
]
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Legion::Extensions::Tasker
|
2
|
+
module Transport
|
3
|
+
module Queues
|
4
|
+
class CheckSubtask < Legion::Transport::Queue
|
5
|
+
def queue_name
|
6
|
+
'task.subtask.check'
|
7
|
+
end
|
8
|
+
|
9
|
+
def queue_options
|
10
|
+
{
|
11
|
+
auto_delete: false,
|
12
|
+
arguments: { 'x-max-priority': 255 }
|
13
|
+
}
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Legion::Extensions::Tasker
|
2
|
+
module Transport
|
3
|
+
module Queues
|
4
|
+
class FetchDelayed < Legion::Transport::Queue
|
5
|
+
def queue_name
|
6
|
+
'task.fetch_delayed'
|
7
|
+
end
|
8
|
+
|
9
|
+
def queue_options
|
10
|
+
{
|
11
|
+
arguments: {
|
12
|
+
'x-single-active-consumer': true,
|
13
|
+
'x-max-priority': 255,
|
14
|
+
'x-message-ttl': 1
|
15
|
+
}
|
16
|
+
}
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Legion::Extensions::Tasker
|
2
|
+
module Transport
|
3
|
+
module Queues
|
4
|
+
class TaskManager < Legion::Transport::Queue
|
5
|
+
def queue_name
|
6
|
+
'tasker.task_manager'
|
7
|
+
end
|
8
|
+
|
9
|
+
def queue_options
|
10
|
+
{ arguments: { 'x-single-active-consumer': true } }
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
metadata
CHANGED
@@ -1,29 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lex-tasker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- Esity
|
8
8
|
autorequire:
|
9
|
-
bindir:
|
9
|
+
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-03-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '2'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: codecov
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
25
32
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: rake
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -53,13 +67,27 @@ dependencies:
|
|
53
67
|
- !ruby/object:Gem::Version
|
54
68
|
version: '0'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
70
|
+
name: rspec_junit_formatter
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
58
72
|
requirements:
|
59
73
|
- - ">="
|
60
74
|
- !ruby/object:Gem::Version
|
61
75
|
version: '0'
|
62
|
-
type: :
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rubocop
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
63
91
|
prerelease: false
|
64
92
|
version_requirements: !ruby/object:Gem::Requirement
|
65
93
|
requirements:
|
@@ -73,27 +101,54 @@ executables: []
|
|
73
101
|
extensions: []
|
74
102
|
extra_rdoc_files: []
|
75
103
|
files:
|
104
|
+
- ".circleci/config.yml"
|
76
105
|
- ".gitignore"
|
77
|
-
- ".idea/encodings.xml"
|
78
|
-
- ".idea/legion-extensions-tasker.iml"
|
79
|
-
- ".idea/misc.xml"
|
80
|
-
- ".idea/modules.xml"
|
81
|
-
- ".idea/workspace.xml"
|
82
106
|
- ".rspec"
|
83
|
-
- ".
|
107
|
+
- ".rubocop.yml"
|
108
|
+
- Dockerfile
|
84
109
|
- Gemfile
|
110
|
+
- Gemfile.lock
|
85
111
|
- LICENSE.txt
|
86
112
|
- README.md
|
87
113
|
- Rakefile
|
88
|
-
-
|
89
|
-
-
|
90
|
-
-
|
114
|
+
- bitbucket-pipelines.yml
|
115
|
+
- docker_deploy.rb
|
116
|
+
- lex-tasker.gemspec
|
91
117
|
- lib/legion/extensions/tasker.rb
|
118
|
+
- lib/legion/extensions/tasker/actors/check_subtask.rb
|
119
|
+
- lib/legion/extensions/tasker/actors/fetch_delayed.rb
|
120
|
+
- lib/legion/extensions/tasker/actors/fetch_delayed_push.rb
|
121
|
+
- lib/legion/extensions/tasker/actors/log.rb
|
122
|
+
- lib/legion/extensions/tasker/actors/task_manager.rb
|
123
|
+
- lib/legion/extensions/tasker/actors/updater.rb
|
124
|
+
- lib/legion/extensions/tasker/helpers/base.rb
|
125
|
+
- lib/legion/extensions/tasker/helpers/fetch_delayed.rb
|
126
|
+
- lib/legion/extensions/tasker/helpers/find_subtask.rb
|
127
|
+
- lib/legion/extensions/tasker/runners/check_subtask.rb
|
128
|
+
- lib/legion/extensions/tasker/runners/fetch_delayed.rb
|
129
|
+
- lib/legion/extensions/tasker/runners/log.rb
|
130
|
+
- lib/legion/extensions/tasker/runners/task_manager.rb
|
131
|
+
- lib/legion/extensions/tasker/runners/updater.rb
|
132
|
+
- lib/legion/extensions/tasker/transport.rb
|
133
|
+
- lib/legion/extensions/tasker/transport/exchanges/task.rb
|
134
|
+
- lib/legion/extensions/tasker/transport/messages/fetch_delayed.rb
|
135
|
+
- lib/legion/extensions/tasker/transport/queues/check_subtask.rb
|
136
|
+
- lib/legion/extensions/tasker/transport/queues/fetch_delayed.rb
|
137
|
+
- lib/legion/extensions/tasker/transport/queues/lex_register.rb
|
138
|
+
- lib/legion/extensions/tasker/transport/queues/subtask.rb
|
139
|
+
- lib/legion/extensions/tasker/transport/queues/task_log.rb
|
140
|
+
- lib/legion/extensions/tasker/transport/queues/task_mananger.rb
|
141
|
+
- lib/legion/extensions/tasker/transport/queues/updater.rb
|
92
142
|
- lib/legion/extensions/tasker/version.rb
|
93
143
|
homepage: https://bitbucket.org/legion-io/lex-tasker
|
94
144
|
licenses:
|
95
145
|
- MIT
|
96
|
-
metadata:
|
146
|
+
metadata:
|
147
|
+
homepage_uri: https://bitbucket.org/legion-io/lex-tasker
|
148
|
+
source_code_uri: https://bitbucket.org/legion-io/lex-tasker/src
|
149
|
+
documentation_uri: https://legionio.atlassian.net/wiki/spaces/LEX/pages/7733408
|
150
|
+
changelog_uri: https://legionio.atlassian.net/wiki/spaces/LEX/pages/12156936
|
151
|
+
bug_tracker_uri: https://bitbucket.org/legion-io/lex-tasker/issues
|
97
152
|
post_install_message:
|
98
153
|
rdoc_options: []
|
99
154
|
require_paths:
|
@@ -102,15 +157,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
102
157
|
requirements:
|
103
158
|
- - ">="
|
104
159
|
- !ruby/object:Gem::Version
|
105
|
-
version:
|
160
|
+
version: 2.5.0
|
106
161
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
107
162
|
requirements:
|
108
163
|
- - ">="
|
109
164
|
- !ruby/object:Gem::Version
|
110
165
|
version: '0'
|
111
166
|
requirements: []
|
112
|
-
|
113
|
-
rubygems_version: 2.7.8
|
167
|
+
rubygems_version: 3.1.4
|
114
168
|
signing_key:
|
115
169
|
specification_version: 4
|
116
170
|
summary: LEX::Tasker manages tasks status from Legion
|
data/.idea/encodings.xml
DELETED
@@ -1,8 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<module type="RUBY_MODULE" version="4">
|
3
|
-
<component name="NewModuleRootManager">
|
4
|
-
<content url="file://$MODULE_DIR$" />
|
5
|
-
<orderEntry type="jdk" jdkName="RVM: ruby-2.4.5" jdkType="RUBY_SDK" />
|
6
|
-
<orderEntry type="sourceFolder" forTests="false" />
|
7
|
-
</component>
|
8
|
-
</module>
|
data/.idea/misc.xml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<project version="4">
|
3
|
-
<component name="JavaScriptSettings">
|
4
|
-
<option name="languageLevel" value="ES6" />
|
5
|
-
</component>
|
6
|
-
<component name="ProjectRootManager" version="2" project-jdk-name="RVM: ruby-2.4.0" project-jdk-type="RUBY_SDK" />
|
7
|
-
</project>
|
data/.idea/modules.xml
DELETED
@@ -1,8 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<project version="4">
|
3
|
-
<component name="ProjectModuleManager">
|
4
|
-
<modules>
|
5
|
-
<module fileurl="file://$PROJECT_DIR$/.idea/legion-extensions-tasker.iml" filepath="$PROJECT_DIR$/.idea/legion-extensions-tasker.iml" />
|
6
|
-
</modules>
|
7
|
-
</component>
|
8
|
-
</project>
|
data/.idea/workspace.xml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<project version="4">
|
3
|
-
<component name="PropertiesComponent">
|
4
|
-
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
|
5
|
-
<property name="nodejs_npm_path_reset_for_default_project" value="true" />
|
6
|
-
</component>
|
7
|
-
</project>
|
data/.travis.yml
DELETED
data/bin/console
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require 'bundler/setup'
|
4
|
-
require 'legion/extensions/tasker'
|
5
|
-
|
6
|
-
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
-
# with your gem easier. You can also use a different console, if you like.
|
8
|
-
|
9
|
-
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
-
# require "pry"
|
11
|
-
# Pry.start
|
12
|
-
|
13
|
-
require 'irb'
|
14
|
-
IRB.start(__FILE__)
|
data/bin/setup
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
lib = File.expand_path('lib', __dir__)
|
2
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
|
-
require 'legion/extensions/tasker/version'
|
4
|
-
|
5
|
-
Gem::Specification.new do |spec|
|
6
|
-
spec.name = 'lex-tasker'
|
7
|
-
spec.version = Legion::Extensions::Tasker::VERSION
|
8
|
-
spec.authors = ['Miverson']
|
9
|
-
spec.email = ['matthewdiverson@gmail.com']
|
10
|
-
|
11
|
-
spec.summary = 'LEX::Tasker manages tasks status from Legion'
|
12
|
-
spec.description = 'This LEX keeps track of tasks and their status'
|
13
|
-
spec.homepage = 'https://bitbucket.org/legion-io/lex-tasker'
|
14
|
-
spec.license = 'MIT'
|
15
|
-
|
16
|
-
# Specify which files should be added to the gem when it is released.
|
17
|
-
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
18
|
-
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
19
|
-
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
20
|
-
end
|
21
|
-
spec.bindir = 'exe'
|
22
|
-
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
23
|
-
spec.require_paths = ['lib']
|
24
|
-
|
25
|
-
spec.add_development_dependency 'bundler', '~> 1'
|
26
|
-
spec.add_development_dependency 'rake'
|
27
|
-
spec.add_development_dependency 'rspec'
|
28
|
-
|
29
|
-
spec.add_dependency 'legion-extensions'
|
30
|
-
end
|