lex-tasker 0.2.1 → 0.3.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 (44) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +16 -0
  3. data/.gitignore +1 -0
  4. data/.rubocop.yml +36 -22
  5. data/CHANGELOG.md +53 -0
  6. data/CLAUDE.md +82 -0
  7. data/Dockerfile +1 -1
  8. data/Gemfile +16 -1
  9. data/README.md +45 -2
  10. data/Rakefile +2 -0
  11. data/docker_deploy.rb +1 -0
  12. data/lex-tasker.gemspec +16 -12
  13. data/lib/legion/extensions/tasker/actors/check_subtask.rb +20 -14
  14. data/lib/legion/extensions/tasker/actors/fetch_delayed.rb +23 -17
  15. data/lib/legion/extensions/tasker/actors/fetch_delayed_push.rb +26 -20
  16. data/lib/legion/extensions/tasker/actors/log.rb +14 -8
  17. data/lib/legion/extensions/tasker/actors/task_manager.rb +20 -14
  18. data/lib/legion/extensions/tasker/actors/updater.rb +20 -14
  19. data/lib/legion/extensions/tasker/client.rb +29 -0
  20. data/lib/legion/extensions/tasker/helpers/task_finder.rb +98 -0
  21. data/lib/legion/extensions/tasker/runners/check_subtask.rb +92 -80
  22. data/lib/legion/extensions/tasker/runners/fetch_delayed.rb +76 -60
  23. data/lib/legion/extensions/tasker/runners/log.rb +47 -41
  24. data/lib/legion/extensions/tasker/runners/task_manager.rb +12 -5
  25. data/lib/legion/extensions/tasker/runners/updater.rb +25 -22
  26. data/lib/legion/extensions/tasker/transport/exchanges/task.rb +10 -4
  27. data/lib/legion/extensions/tasker/transport/messages/fetch_delayed.rb +17 -7
  28. data/lib/legion/extensions/tasker/transport/queues/check_subtask.rb +18 -12
  29. data/lib/legion/extensions/tasker/transport/queues/fetch_delayed.rb +20 -15
  30. data/lib/legion/extensions/tasker/transport/queues/lex_register.rb +15 -9
  31. data/lib/legion/extensions/tasker/transport/queues/subtask.rb +12 -6
  32. data/lib/legion/extensions/tasker/transport/queues/task_log.rb +12 -6
  33. data/lib/legion/extensions/tasker/transport/queues/task_mananger.rb +15 -9
  34. data/lib/legion/extensions/tasker/transport/queues/updater.rb +12 -6
  35. data/lib/legion/extensions/tasker/transport.rb +31 -24
  36. data/lib/legion/extensions/tasker/version.rb +3 -1
  37. data/lib/legion/extensions/tasker.rb +2 -4
  38. metadata +54 -43
  39. data/.circleci/config.yml +0 -39
  40. data/Gemfile.lock +0 -69
  41. data/bitbucket-pipelines.yml +0 -19
  42. data/lib/legion/extensions/tasker/helpers/base.rb +0 -11
  43. data/lib/legion/extensions/tasker/helpers/fetch_delayed.rb +0 -66
  44. data/lib/legion/extensions/tasker/helpers/find_subtask.rb +0 -49
@@ -1,11 +1,21 @@
1
- module Legion::Extensions::Tasker::Transport::Messages
2
- class FetchDelayed < Legion::Transport::Message
3
- def routing_key
4
- 'fetch.delayed'
5
- end
1
+ # frozen_string_literal: true
2
+
3
+ module Legion
4
+ module Extensions
5
+ module Tasker
6
+ module Transport
7
+ module Messages
8
+ class FetchDelayed < Legion::Transport::Message
9
+ def routing_key
10
+ 'fetch.delayed'
11
+ end
6
12
 
7
- def expiration
8
- 5000
13
+ def expiration
14
+ 5000
15
+ end
16
+ end
17
+ end
18
+ end
9
19
  end
10
20
  end
11
21
  end
@@ -1,16 +1,22 @@
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
1
+ # frozen_string_literal: true
2
+
3
+ module Legion
4
+ module Extensions
5
+ module Tasker
6
+ module Transport
7
+ module Queues
8
+ class CheckSubtask < Legion::Transport::Queue
9
+ def queue_name
10
+ 'task.subtask.check'
11
+ end
8
12
 
9
- def queue_options
10
- {
11
- auto_delete: false,
12
- arguments: { 'x-max-priority': 255 }
13
- }
13
+ def queue_options
14
+ {
15
+ auto_delete: false,
16
+ arguments: {}
17
+ }
18
+ end
19
+ end
14
20
  end
15
21
  end
16
22
  end
@@ -1,19 +1,24 @@
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
1
+ # frozen_string_literal: true
2
+
3
+ module Legion
4
+ module Extensions
5
+ module Tasker
6
+ module Transport
7
+ module Queues
8
+ class FetchDelayed < Legion::Transport::Queue
9
+ def queue_name
10
+ 'task.fetch_delayed'
11
+ end
8
12
 
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
- }
13
+ def queue_options
14
+ {
15
+ arguments: {
16
+ 'x-single-active-consumer': true,
17
+ 'x-message-ttl': 1000
18
+ }
19
+ }
20
+ end
21
+ end
17
22
  end
18
23
  end
19
24
  end
@@ -1,13 +1,19 @@
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
1
+ # frozen_string_literal: true
2
+
3
+ module Legion
4
+ module Extensions
5
+ module Tasker
6
+ module Transport
7
+ module Queues
8
+ class LexRegister < Legion::Transport::Queue
9
+ def queue_name
10
+ 'lex.register'
11
+ end
8
12
 
9
- def queue_options
10
- { auto_delete: false }
13
+ def queue_options
14
+ { auto_delete: false }
15
+ end
16
+ end
11
17
  end
12
18
  end
13
19
  end
@@ -1,9 +1,15 @@
1
- module Legion::Extensions::Tasker
2
- module Transport
3
- module Queues
4
- class Subtask < Legion::Transport::Queue
5
- def queue_name
6
- 'task.subtask'
1
+ # frozen_string_literal: true
2
+
3
+ module Legion
4
+ module Extensions
5
+ module Tasker
6
+ module Transport
7
+ module Queues
8
+ class Subtask < Legion::Transport::Queue
9
+ def queue_name
10
+ 'task.subtask'
11
+ end
12
+ end
7
13
  end
8
14
  end
9
15
  end
@@ -1,9 +1,15 @@
1
- module Legion::Extensions::Tasker
2
- module Transport
3
- module Queues
4
- class Log < Legion::Transport::Queue
5
- def queue_name
6
- 'task.log'
1
+ # frozen_string_literal: true
2
+
3
+ module Legion
4
+ module Extensions
5
+ module Tasker
6
+ module Transport
7
+ module Queues
8
+ class Log < Legion::Transport::Queue
9
+ def queue_name
10
+ 'task.log'
11
+ end
12
+ end
7
13
  end
8
14
  end
9
15
  end
@@ -1,13 +1,19 @@
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
1
+ # frozen_string_literal: true
2
+
3
+ module Legion
4
+ module Extensions
5
+ module Tasker
6
+ module Transport
7
+ module Queues
8
+ class TaskManager < Legion::Transport::Queue
9
+ def queue_name
10
+ 'tasker.task_manager'
11
+ end
8
12
 
9
- def queue_options
10
- { arguments: { 'x-single-active-consumer': true } }
13
+ def queue_options
14
+ { arguments: { 'x-single-active-consumer': true } }
15
+ end
16
+ end
11
17
  end
12
18
  end
13
19
  end
@@ -1,9 +1,15 @@
1
- module Legion::Extensions::Tasker
2
- module Transport
3
- module Queues
4
- class Updater < Legion::Transport::Queue
5
- def queue_name
6
- 'task.updater'
1
+ # frozen_string_literal: true
2
+
3
+ module Legion
4
+ module Extensions
5
+ module Tasker
6
+ module Transport
7
+ module Queues
8
+ class Updater < Legion::Transport::Queue
9
+ def queue_name
10
+ 'task.updater'
11
+ end
12
+ end
7
13
  end
8
14
  end
9
15
  end
@@ -1,30 +1,37 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'legion/transport/exchanges/task'
2
4
  require 'legion/extensions/transport'
3
5
 
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
- ]
6
+ module Legion
7
+ module Extensions
8
+ module Tasker
9
+ module Transport
10
+ extend Legion::Extensions::Transport
11
+
12
+ def self.e_to_q
13
+ [
14
+ {
15
+ to: 'updater',
16
+ routing_key: 'task.update'
17
+ },
18
+ {
19
+ to: 'log',
20
+ routing_key: 'task.logs.#'
21
+ }, {
22
+ to: 'check_subtask',
23
+ routing_key: 'task.subtask.check'
24
+ }, {
25
+ to: 'fetch_delayed',
26
+ routing_key: 'fetch.delayed'
27
+ }, {
28
+ from: 'tasker',
29
+ to: 'task_manager',
30
+ routing_key: 'task.task_manager.#'
31
+ }
32
+ ]
33
+ end
34
+ end
28
35
  end
29
36
  end
30
37
  end
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Legion
2
4
  module Extensions
3
5
  module Tasker
4
- VERSION = '0.2.1'.freeze
6
+ VERSION = '0.3.1'
5
7
  end
6
8
  end
7
9
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'legion/extensions/tasker/version'
2
4
 
3
5
  module Legion
@@ -8,10 +10,6 @@ module Legion
8
10
  def self.data_required?
9
11
  true
10
12
  end
11
-
12
- def data_required?
13
- true
14
- end
15
13
  end
16
14
  end
17
15
  end
metadata CHANGED
@@ -1,99 +1,112 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lex-tasker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esity
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2021-03-03 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
- name: bundler
13
+ name: legion-cache
15
14
  requirement: !ruby/object:Gem::Requirement
16
15
  requirements:
17
16
  - - ">="
18
17
  - !ruby/object:Gem::Version
19
- version: '2'
20
- type: :development
18
+ version: 1.3.11
19
+ type: :runtime
21
20
  prerelease: false
22
21
  version_requirements: !ruby/object:Gem::Requirement
23
22
  requirements:
24
23
  - - ">="
25
24
  - !ruby/object:Gem::Version
26
- version: '2'
25
+ version: 1.3.11
27
26
  - !ruby/object:Gem::Dependency
28
- name: codecov
27
+ name: legion-crypt
29
28
  requirement: !ruby/object:Gem::Requirement
30
29
  requirements:
31
30
  - - ">="
32
31
  - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :development
32
+ version: 1.4.9
33
+ type: :runtime
35
34
  prerelease: false
36
35
  version_requirements: !ruby/object:Gem::Requirement
37
36
  requirements:
38
37
  - - ">="
39
38
  - !ruby/object:Gem::Version
40
- version: '0'
39
+ version: 1.4.9
41
40
  - !ruby/object:Gem::Dependency
42
- name: rake
41
+ name: legion-data
43
42
  requirement: !ruby/object:Gem::Requirement
44
43
  requirements:
45
44
  - - ">="
46
45
  - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :development
46
+ version: 1.4.17
47
+ type: :runtime
49
48
  prerelease: false
50
49
  version_requirements: !ruby/object:Gem::Requirement
51
50
  requirements:
52
51
  - - ">="
53
52
  - !ruby/object:Gem::Version
54
- version: '0'
53
+ version: 1.4.17
55
54
  - !ruby/object:Gem::Dependency
56
- name: rspec
55
+ name: legion-json
57
56
  requirement: !ruby/object:Gem::Requirement
58
57
  requirements:
59
58
  - - ">="
60
59
  - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
60
+ version: 1.2.1
61
+ type: :runtime
63
62
  prerelease: false
64
63
  version_requirements: !ruby/object:Gem::Requirement
65
64
  requirements:
66
65
  - - ">="
67
66
  - !ruby/object:Gem::Version
68
- version: '0'
67
+ version: 1.2.1
69
68
  - !ruby/object:Gem::Dependency
70
- name: rspec_junit_formatter
69
+ name: legion-logging
71
70
  requirement: !ruby/object:Gem::Requirement
72
71
  requirements:
73
72
  - - ">="
74
73
  - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
74
+ version: 1.3.2
75
+ type: :runtime
77
76
  prerelease: false
78
77
  version_requirements: !ruby/object:Gem::Requirement
79
78
  requirements:
80
79
  - - ">="
81
80
  - !ruby/object:Gem::Version
82
- version: '0'
81
+ version: 1.3.2
83
82
  - !ruby/object:Gem::Dependency
84
- name: rubocop
83
+ name: legion-settings
85
84
  requirement: !ruby/object:Gem::Requirement
86
85
  requirements:
87
86
  - - ">="
88
87
  - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
88
+ version: 1.3.14
89
+ type: :runtime
91
90
  prerelease: false
92
91
  version_requirements: !ruby/object:Gem::Requirement
93
92
  requirements:
94
93
  - - ">="
95
94
  - !ruby/object:Gem::Version
96
- version: '0'
95
+ version: 1.3.14
96
+ - !ruby/object:Gem::Dependency
97
+ name: legion-transport
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: 1.3.9
103
+ type: :runtime
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: 1.3.9
97
110
  description: This LEX keeps track of tasks and their status
98
111
  email:
99
112
  - matthewdiverson@gmail.com
@@ -101,17 +114,17 @@ executables: []
101
114
  extensions: []
102
115
  extra_rdoc_files: []
103
116
  files:
104
- - ".circleci/config.yml"
117
+ - ".github/workflows/ci.yml"
105
118
  - ".gitignore"
106
119
  - ".rspec"
107
120
  - ".rubocop.yml"
121
+ - CHANGELOG.md
122
+ - CLAUDE.md
108
123
  - Dockerfile
109
124
  - Gemfile
110
- - Gemfile.lock
111
125
  - LICENSE.txt
112
126
  - README.md
113
127
  - Rakefile
114
- - bitbucket-pipelines.yml
115
128
  - docker_deploy.rb
116
129
  - lex-tasker.gemspec
117
130
  - lib/legion/extensions/tasker.rb
@@ -121,9 +134,8 @@ files:
121
134
  - lib/legion/extensions/tasker/actors/log.rb
122
135
  - lib/legion/extensions/tasker/actors/task_manager.rb
123
136
  - 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
137
+ - lib/legion/extensions/tasker/client.rb
138
+ - lib/legion/extensions/tasker/helpers/task_finder.rb
127
139
  - lib/legion/extensions/tasker/runners/check_subtask.rb
128
140
  - lib/legion/extensions/tasker/runners/fetch_delayed.rb
129
141
  - lib/legion/extensions/tasker/runners/log.rb
@@ -140,16 +152,16 @@ files:
140
152
  - lib/legion/extensions/tasker/transport/queues/task_mananger.rb
141
153
  - lib/legion/extensions/tasker/transport/queues/updater.rb
142
154
  - lib/legion/extensions/tasker/version.rb
143
- homepage: https://bitbucket.org/legion-io/lex-tasker
155
+ homepage: https://github.com/LegionIO/lex-tasker
144
156
  licenses:
145
157
  - MIT
146
158
  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
152
- post_install_message:
159
+ homepage_uri: https://github.com/LegionIO/lex-tasker
160
+ source_code_uri: https://github.com/LegionIO/lex-tasker
161
+ documentation_uri: https://github.com/LegionIO/lex-tasker
162
+ changelog_uri: https://github.com/LegionIO/lex-tasker
163
+ bug_tracker_uri: https://github.com/LegionIO/lex-tasker/issues
164
+ rubygems_mfa_required: 'true'
153
165
  rdoc_options: []
154
166
  require_paths:
155
167
  - lib
@@ -157,15 +169,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
157
169
  requirements:
158
170
  - - ">="
159
171
  - !ruby/object:Gem::Version
160
- version: 2.5.0
172
+ version: '3.4'
161
173
  required_rubygems_version: !ruby/object:Gem::Requirement
162
174
  requirements:
163
175
  - - ">="
164
176
  - !ruby/object:Gem::Version
165
177
  version: '0'
166
178
  requirements: []
167
- rubygems_version: 3.1.4
168
- signing_key:
179
+ rubygems_version: 3.6.9
169
180
  specification_version: 4
170
181
  summary: LEX::Tasker manages tasks status from Legion
171
182
  test_files: []
data/.circleci/config.yml DELETED
@@ -1,39 +0,0 @@
1
- version: 2.1
2
- orbs:
3
- ruby: circleci/ruby@0.2.1
4
-
5
- jobs:
6
- "rubocop":
7
- docker:
8
- - image: circleci/ruby:2.7
9
- steps:
10
- - checkout
11
- - ruby/load-cache
12
- - ruby/install-deps
13
- - run:
14
- name: Update bundler
15
- command: gem update bundler
16
- - run:
17
- name: Run Rubocop
18
- command: bundle exec rubocop
19
- - ruby/save-cache
20
- "rspec":
21
- docker:
22
- - image: circleci/ruby:2.7
23
- steps:
24
- - checkout
25
- - ruby/load-cache
26
- - ruby/install-deps
27
- - run:
28
- name: Update bundler
29
- command: gem update bundler
30
- - ruby/run-tests
31
- - ruby/save-cache
32
- workflows:
33
- version: 2
34
- rubocop-rspec:
35
- jobs:
36
- - rubocop
37
- - rspec:
38
- requires:
39
- - rubocop
data/Gemfile.lock DELETED
@@ -1,69 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- lex-tasker (0.2.0)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- ast (2.4.1)
10
- codecov (0.2.12)
11
- json
12
- simplecov
13
- diff-lcs (1.4.4)
14
- docile (1.3.2)
15
- json (2.3.1)
16
- parallel (1.19.2)
17
- parser (2.7.2.0)
18
- ast (~> 2.4.1)
19
- rainbow (3.0.0)
20
- rake (13.0.1)
21
- regexp_parser (1.8.2)
22
- rexml (3.2.4)
23
- rspec (3.10.0)
24
- rspec-core (~> 3.10.0)
25
- rspec-expectations (~> 3.10.0)
26
- rspec-mocks (~> 3.10.0)
27
- rspec-core (3.10.0)
28
- rspec-support (~> 3.10.0)
29
- rspec-expectations (3.10.0)
30
- diff-lcs (>= 1.2.0, < 2.0)
31
- rspec-support (~> 3.10.0)
32
- rspec-mocks (3.10.0)
33
- diff-lcs (>= 1.2.0, < 2.0)
34
- rspec-support (~> 3.10.0)
35
- rspec-support (3.10.0)
36
- rspec_junit_formatter (0.4.1)
37
- rspec-core (>= 2, < 4, != 2.12.0)
38
- rubocop (1.1.0)
39
- parallel (~> 1.10)
40
- parser (>= 2.7.1.5)
41
- rainbow (>= 2.2.2, < 4.0)
42
- regexp_parser (>= 1.8)
43
- rexml
44
- rubocop-ast (>= 1.0.1)
45
- ruby-progressbar (~> 1.7)
46
- unicode-display_width (>= 1.4.0, < 2.0)
47
- rubocop-ast (1.1.0)
48
- parser (>= 2.7.1.5)
49
- ruby-progressbar (1.10.1)
50
- simplecov (0.19.1)
51
- docile (~> 1.1)
52
- simplecov-html (~> 0.11)
53
- simplecov-html (0.12.3)
54
- unicode-display_width (1.7.0)
55
-
56
- PLATFORMS
57
- ruby
58
-
59
- DEPENDENCIES
60
- bundler (>= 2)
61
- codecov
62
- lex-tasker!
63
- rake
64
- rspec
65
- rspec_junit_formatter
66
- rubocop
67
-
68
- BUNDLED WITH
69
- 2.1.4
@@ -1,19 +0,0 @@
1
- image: ruby:2.7
2
-
3
- pipelines:
4
- tags:
5
- "v*":
6
- - step:
7
- name: Push to RubyGems
8
- deployment: RubyGems
9
- script:
10
- - gem install gem-release
11
- - (umask 077 ; echo $gem_creds | base64 --decode > ~/.gem/credentials)
12
- - gem release
13
- artifacts:
14
- - pkg/**
15
- - step:
16
- name: Push to Docker
17
- deployment: Docker
18
- script:
19
- - './docker_deploy.rb'
@@ -1,11 +0,0 @@
1
- module Legion
2
- module Extensions
3
- module Tasker
4
- module Helpers
5
- module Base
6
- def send_task(**opts); end
7
- end
8
- end
9
- end
10
- end
11
- end