lex-tasker 0.1.0 → 0.2.1

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.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +39 -0
  3. data/.rubocop.yml +34 -0
  4. data/Dockerfile +9 -0
  5. data/Gemfile +0 -3
  6. data/Gemfile.lock +69 -0
  7. data/README.md +1 -37
  8. data/bitbucket-pipelines.yml +19 -0
  9. data/docker_deploy.rb +13 -0
  10. data/lex-tasker.gemspec +33 -0
  11. data/lib/legion/extensions/tasker.rb +5 -70
  12. data/lib/legion/extensions/tasker/actors/check_subtask.rb +21 -0
  13. data/lib/legion/extensions/tasker/actors/fetch_delayed.rb +25 -0
  14. data/lib/legion/extensions/tasker/actors/fetch_delayed_push.rb +29 -0
  15. data/lib/legion/extensions/tasker/actors/log.rb +13 -0
  16. data/lib/legion/extensions/tasker/actors/task_manager.rb +21 -0
  17. data/lib/legion/extensions/tasker/actors/updater.rb +21 -0
  18. data/lib/legion/extensions/tasker/helpers/base.rb +11 -0
  19. data/lib/legion/extensions/tasker/helpers/fetch_delayed.rb +66 -0
  20. data/lib/legion/extensions/tasker/helpers/find_subtask.rb +49 -0
  21. data/lib/legion/extensions/tasker/runners/check_subtask.rb +97 -0
  22. data/lib/legion/extensions/tasker/runners/fetch_delayed.rb +71 -0
  23. data/lib/legion/extensions/tasker/runners/log.rb +50 -0
  24. data/lib/legion/extensions/tasker/runners/task_manager.rb +28 -0
  25. data/lib/legion/extensions/tasker/runners/updater.rb +31 -0
  26. data/lib/legion/extensions/tasker/transport.rb +30 -0
  27. data/lib/legion/extensions/tasker/transport/exchanges/task.rb +8 -0
  28. data/lib/legion/extensions/tasker/transport/messages/fetch_delayed.rb +11 -0
  29. data/lib/legion/extensions/tasker/transport/queues/check_subtask.rb +18 -0
  30. data/lib/legion/extensions/tasker/transport/queues/fetch_delayed.rb +21 -0
  31. data/lib/legion/extensions/tasker/transport/queues/lex_register.rb +15 -0
  32. data/lib/legion/extensions/tasker/transport/queues/subtask.rb +11 -0
  33. data/lib/legion/extensions/tasker/transport/queues/task_log.rb +11 -0
  34. data/lib/legion/extensions/tasker/transport/queues/task_mananger.rb +15 -0
  35. data/lib/legion/extensions/tasker/transport/queues/updater.rb +11 -0
  36. data/lib/legion/extensions/tasker/version.rb +1 -1
  37. metadata +77 -23
  38. data/.idea/encodings.xml +0 -4
  39. data/.idea/legion-extensions-tasker.iml +0 -8
  40. data/.idea/misc.xml +0 -7
  41. data/.idea/modules.xml +0 -8
  42. data/.idea/workspace.xml +0 -7
  43. data/.travis.yml +0 -7
  44. data/bin/console +0 -14
  45. data/bin/setup +0 -8
  46. 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,8 @@
1
+ module Legion::Extensions::Tasker
2
+ module Transport
3
+ module Exchanges
4
+ class Tasker < Legion::Transport::Exchanges::Task
5
+ end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,11 @@
1
+ module Legion::Extensions::Tasker::Transport::Messages
2
+ class FetchDelayed < Legion::Transport::Message
3
+ def routing_key
4
+ 'fetch.delayed'
5
+ end
6
+
7
+ def expiration
8
+ 5000
9
+ end
10
+ end
11
+ 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 LexRegister < Legion::Transport::Queue
5
+ def queue_name
6
+ 'lex.register'
7
+ end
8
+
9
+ def queue_options
10
+ { auto_delete: false }
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,11 @@
1
+ module Legion::Extensions::Tasker
2
+ module Transport
3
+ module Queues
4
+ class Subtask < Legion::Transport::Queue
5
+ def queue_name
6
+ 'task.subtask'
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ module Legion::Extensions::Tasker
2
+ module Transport
3
+ module Queues
4
+ class Log < Legion::Transport::Queue
5
+ def queue_name
6
+ 'task.log'
7
+ end
8
+ end
9
+ end
10
+ end
11
+ 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
@@ -0,0 +1,11 @@
1
+ module Legion::Extensions::Tasker
2
+ module Transport
3
+ module Queues
4
+ class Updater < Legion::Transport::Queue
5
+ def queue_name
6
+ 'task.updater'
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -1,7 +1,7 @@
1
1
  module Legion
2
2
  module Extensions
3
3
  module Tasker
4
- VERSION = '0.1.0'.freeze
4
+ VERSION = '0.2.1'.freeze
5
5
  end
6
6
  end
7
7
  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.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
- - Miverson
7
+ - Esity
8
8
  autorequire:
9
- bindir: exe
9
+ bindir: bin
10
10
  cert_chain: []
11
- date: 2019-02-08 00:00:00.000000000 Z
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: '1'
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: '1'
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: legion-extensions
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: :runtime
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
- - ".travis.yml"
107
+ - ".rubocop.yml"
108
+ - Dockerfile
84
109
  - Gemfile
110
+ - Gemfile.lock
85
111
  - LICENSE.txt
86
112
  - README.md
87
113
  - Rakefile
88
- - bin/console
89
- - bin/setup
90
- - legion-extensions-tasker.gemspec
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: '0'
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
- rubyforge_project:
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,4 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="Encoding" addBOMForNewFiles="with NO BOM" />
4
- </project>
@@ -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
@@ -1,7 +0,0 @@
1
- ---
2
- sudo: false
3
- language: ruby
4
- cache: bundler
5
- rvm:
6
- - 2.4.5
7
- before_install: gem install bundler -v 1.17.3
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,8 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
- IFS=$'\n\t'
4
- set -vx
5
-
6
- bundle install
7
-
8
- # Do any other automated setup that you need to do here
@@ -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