solid_queue_monitor 0.1.2 → 0.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/README.md +25 -11
- data/Rakefile +8 -8
- data/app/controllers/solid_queue_monitor/application_controller.rb +25 -0
- data/app/controllers/solid_queue_monitor/base_controller.rb +197 -0
- data/app/controllers/solid_queue_monitor/failed_jobs_controller.rb +63 -0
- data/app/controllers/solid_queue_monitor/in_progress_jobs_controller.rb +33 -0
- data/app/controllers/solid_queue_monitor/overview_controller.rb +26 -0
- data/app/controllers/solid_queue_monitor/queues_controller.rb +13 -0
- data/app/controllers/solid_queue_monitor/ready_jobs_controller.rb +15 -0
- data/app/controllers/solid_queue_monitor/recurring_jobs_controller.rb +15 -0
- data/app/controllers/solid_queue_monitor/scheduled_jobs_controller.rb +25 -0
- data/app/presenters/solid_queue_monitor/base_presenter.rb +44 -39
- data/app/presenters/solid_queue_monitor/failed_jobs_presenter.rb +51 -45
- data/app/presenters/solid_queue_monitor/in_progress_jobs_presenter.rb +82 -0
- data/app/presenters/solid_queue_monitor/jobs_presenter.rb +46 -3
- data/app/presenters/solid_queue_monitor/queues_presenter.rb +5 -5
- data/app/presenters/solid_queue_monitor/ready_jobs_presenter.rb +10 -2
- data/app/presenters/solid_queue_monitor/recurring_jobs_presenter.rb +5 -2
- data/app/presenters/solid_queue_monitor/scheduled_jobs_presenter.rb +15 -9
- data/app/presenters/solid_queue_monitor/stats_presenter.rb +5 -3
- data/app/services/solid_queue_monitor/authentication_service.rb +7 -5
- data/app/services/solid_queue_monitor/execute_job_service.rb +3 -1
- data/app/services/solid_queue_monitor/failed_job_service.rb +38 -42
- data/app/services/solid_queue_monitor/html_generator.rb +7 -3
- data/app/services/solid_queue_monitor/pagination_service.rb +3 -1
- data/app/services/solid_queue_monitor/stats_calculator.rb +4 -1
- data/app/services/solid_queue_monitor/status_calculator.rb +4 -1
- data/app/services/solid_queue_monitor/stylesheet_generator.rb +23 -21
- data/config/initializers/solid_queue_monitor.rb +3 -1
- data/config/routes.rb +18 -16
- data/lib/generators/solid_queue_monitor/install_generator.rb +7 -5
- data/lib/generators/solid_queue_monitor/templates/initializer.rb +3 -1
- data/lib/solid_queue_monitor/engine.rb +5 -3
- data/lib/solid_queue_monitor/version.rb +1 -1
- data/lib/solid_queue_monitor.rb +9 -13
- data/lib/tasks/app.rake +42 -40
- metadata +18 -148
- data/app/controllers/solid_queue_monitor/monitor_controller.rb +0 -318
data/lib/solid_queue_monitor.rb
CHANGED
@@ -1,22 +1,18 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require_relative
|
4
|
-
require_relative
|
3
|
+
require_relative 'solid_queue_monitor/version'
|
4
|
+
require_relative 'solid_queue_monitor/engine'
|
5
5
|
|
6
6
|
module SolidQueueMonitor
|
7
7
|
class Error < StandardError; end
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
mattr_accessor :password
|
13
|
-
@@password = 'password'
|
14
|
-
|
15
|
-
mattr_accessor :jobs_per_page
|
16
|
-
@@jobs_per_page = 25
|
8
|
+
class << self
|
9
|
+
attr_accessor :username, :password, :jobs_per_page, :authentication_enabled
|
10
|
+
end
|
17
11
|
|
18
|
-
|
19
|
-
|
12
|
+
@username = 'admin'
|
13
|
+
@password = 'password'
|
14
|
+
@jobs_per_page = 25
|
15
|
+
@authentication_enabled = false
|
20
16
|
|
21
17
|
def self.setup
|
22
18
|
yield self
|
data/lib/tasks/app.rake
CHANGED
@@ -1,11 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
namespace :app do
|
2
|
-
desc
|
3
|
-
task :
|
4
|
+
desc 'Setup the dummy app for testing'
|
5
|
+
task setup: :environment do
|
4
6
|
require 'fileutils'
|
5
|
-
|
7
|
+
|
6
8
|
# Create dummy app directories
|
7
|
-
dummy_app_path = File.expand_path(
|
8
|
-
|
9
|
+
dummy_app_path = File.expand_path('../spec/dummy', __dir__)
|
10
|
+
|
9
11
|
# Ensure directories exist
|
10
12
|
%w[
|
11
13
|
app/controllers
|
@@ -19,19 +21,19 @@ namespace :app do
|
|
19
21
|
].each do |dir|
|
20
22
|
FileUtils.mkdir_p(File.join(dummy_app_path, dir))
|
21
23
|
end
|
22
|
-
|
24
|
+
|
23
25
|
# Create necessary files if they don't exist
|
24
|
-
unless File.exist?(File.join(dummy_app_path,
|
25
|
-
File.write(File.join(dummy_app_path,
|
26
|
+
unless File.exist?(File.join(dummy_app_path, 'config/boot.rb'))
|
27
|
+
File.write(File.join(dummy_app_path, 'config/boot.rb'), <<~RUBY)
|
26
28
|
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../../Gemfile', __dir__)
|
27
29
|
require 'bundler/setup'
|
28
30
|
RUBY
|
29
31
|
end
|
30
|
-
|
31
|
-
unless File.exist?(File.join(dummy_app_path,
|
32
|
-
File.write(File.join(dummy_app_path,
|
32
|
+
|
33
|
+
unless File.exist?(File.join(dummy_app_path, 'config/application.rb'))
|
34
|
+
File.write(File.join(dummy_app_path, 'config/application.rb'), <<~RUBY)
|
33
35
|
require_relative "boot"
|
34
|
-
|
36
|
+
|
35
37
|
require "rails"
|
36
38
|
require "active_model/railtie"
|
37
39
|
require "active_record/railtie"
|
@@ -40,80 +42,80 @@ namespace :app do
|
|
40
42
|
require "rails/test_unit/railtie"
|
41
43
|
require "solid_queue"
|
42
44
|
require "solid_queue_monitor"
|
43
|
-
|
45
|
+
|
44
46
|
module Dummy
|
45
47
|
class Application < Rails::Application
|
46
48
|
config.load_defaults Rails::VERSION::STRING.to_f
|
47
|
-
|
49
|
+
#{' '}
|
48
50
|
# Settings in config/environments/* take precedence over those specified here.
|
49
51
|
# Application configuration can go into files in config/initializers
|
50
52
|
# -- all .rb files in that directory are automatically loaded after loading
|
51
53
|
# the framework and any gems in your application.
|
52
|
-
|
54
|
+
#{' '}
|
53
55
|
# Only loads a smaller set of middleware suitable for API only apps.
|
54
56
|
# Middleware like session, flash, cookies can be added back manually.
|
55
57
|
config.api_only = true
|
56
|
-
|
58
|
+
#{' '}
|
57
59
|
# Don't generate system test files.
|
58
60
|
config.generators.system_tests = nil
|
59
61
|
end
|
60
62
|
end
|
61
63
|
RUBY
|
62
64
|
end
|
63
|
-
|
64
|
-
unless File.exist?(File.join(dummy_app_path,
|
65
|
-
File.write(File.join(dummy_app_path,
|
65
|
+
|
66
|
+
unless File.exist?(File.join(dummy_app_path, 'config/environment.rb'))
|
67
|
+
File.write(File.join(dummy_app_path, 'config/environment.rb'), <<~RUBY)
|
66
68
|
# Load the Rails application.
|
67
69
|
require_relative 'application'
|
68
|
-
|
70
|
+
|
69
71
|
# Initialize the Rails application.
|
70
72
|
Rails.application.initialize!
|
71
73
|
RUBY
|
72
74
|
end
|
73
|
-
|
74
|
-
unless File.exist?(File.join(dummy_app_path,
|
75
|
-
File.write(File.join(dummy_app_path,
|
75
|
+
|
76
|
+
unless File.exist?(File.join(dummy_app_path, 'config/environments/test.rb'))
|
77
|
+
File.write(File.join(dummy_app_path, 'config/environments/test.rb'), <<~RUBY)
|
76
78
|
Rails.application.configure do
|
77
79
|
# Settings specified here will take precedence over those in config/application.rb.
|
78
|
-
|
80
|
+
|
79
81
|
# The test environment is used exclusively to run your application's
|
80
82
|
# test suite. You never need to work with it otherwise. Remember that
|
81
83
|
# your test database is "scratch space" for the test suite and is wiped
|
82
84
|
# and recreated between test runs. Don't rely on the data there!
|
83
85
|
config.cache_classes = true
|
84
|
-
|
86
|
+
|
85
87
|
# Do not eager load code on boot. This avoids loading your whole application
|
86
88
|
# just for the purpose of running a single test. If you are using a tool that
|
87
89
|
# preloads Rails for running tests, you may have to set it to true.
|
88
90
|
config.eager_load = false
|
89
|
-
|
91
|
+
|
90
92
|
# Configure public file server for tests with Cache-Control for performance.
|
91
93
|
config.public_file_server.enabled = true
|
92
94
|
config.public_file_server.headers = {
|
93
95
|
'Cache-Control' => "public, max-age=\#{1.hour.to_i}"
|
94
96
|
}
|
95
|
-
|
97
|
+
|
96
98
|
# Show full error reports and disable caching.
|
97
99
|
config.consider_all_requests_local = true
|
98
100
|
config.action_controller.perform_caching = false
|
99
|
-
|
101
|
+
|
100
102
|
# Raise exceptions instead of rendering exception templates.
|
101
103
|
config.action_dispatch.show_exceptions = false
|
102
|
-
|
104
|
+
|
103
105
|
# Disable request forgery protection in test environment.
|
104
106
|
config.action_controller.allow_forgery_protection = false
|
105
|
-
|
107
|
+
|
106
108
|
# Print deprecation notices to the stderr.
|
107
109
|
config.active_support.deprecation = :stderr
|
108
|
-
|
110
|
+
|
109
111
|
# Raises error for missing translations.
|
110
112
|
# config.action_view.raise_on_missing_translations = true
|
111
113
|
end
|
112
114
|
RUBY
|
113
115
|
end
|
114
|
-
|
115
|
-
unless File.exist?(File.join(dummy_app_path,
|
116
|
-
File.write(File.join(dummy_app_path,
|
116
|
+
|
117
|
+
unless File.exist?(File.join(dummy_app_path, 'config/database.yml'))
|
118
|
+
File.write(File.join(dummy_app_path, 'config/database.yml'), <<~YAML)
|
117
119
|
test:
|
118
120
|
adapter: sqlite3
|
119
121
|
database: ":memory:"
|
@@ -121,15 +123,15 @@ namespace :app do
|
|
121
123
|
timeout: 5000
|
122
124
|
YAML
|
123
125
|
end
|
124
|
-
|
125
|
-
unless File.exist?(File.join(dummy_app_path,
|
126
|
-
File.write(File.join(dummy_app_path,
|
126
|
+
|
127
|
+
unless File.exist?(File.join(dummy_app_path, 'config/routes.rb'))
|
128
|
+
File.write(File.join(dummy_app_path, 'config/routes.rb'), <<~RUBY)
|
127
129
|
Rails.application.routes.draw do
|
128
130
|
mount SolidQueueMonitor::Engine => "/solid_queue"
|
129
131
|
end
|
130
132
|
RUBY
|
131
133
|
end
|
132
|
-
|
133
|
-
puts
|
134
|
+
|
135
|
+
puts 'Dummy app setup complete!'
|
134
136
|
end
|
135
|
-
end
|
137
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solid_queue_monitor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vishal Sadriya
|
8
|
-
bindir:
|
8
|
+
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: rails
|
@@ -15,14 +15,14 @@ dependencies:
|
|
15
15
|
requirements:
|
16
16
|
- - ">="
|
17
17
|
- !ruby/object:Gem::Version
|
18
|
-
version: '7.
|
18
|
+
version: '7.0'
|
19
19
|
type: :runtime
|
20
20
|
prerelease: false
|
21
21
|
version_requirements: !ruby/object:Gem::Requirement
|
22
22
|
requirements:
|
23
23
|
- - ">="
|
24
24
|
- !ruby/object:Gem::Version
|
25
|
-
version: '7.
|
25
|
+
version: '7.0'
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: solid_queue
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
@@ -37,146 +37,6 @@ dependencies:
|
|
37
37
|
- - ">="
|
38
38
|
- !ruby/object:Gem::Version
|
39
39
|
version: 0.1.0
|
40
|
-
- !ruby/object:Gem::Dependency
|
41
|
-
name: rspec-rails
|
42
|
-
requirement: !ruby/object:Gem::Requirement
|
43
|
-
requirements:
|
44
|
-
- - "~>"
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version: '6.0'
|
47
|
-
type: :development
|
48
|
-
prerelease: false
|
49
|
-
version_requirements: !ruby/object:Gem::Requirement
|
50
|
-
requirements:
|
51
|
-
- - "~>"
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: '6.0'
|
54
|
-
- !ruby/object:Gem::Dependency
|
55
|
-
name: capybara
|
56
|
-
requirement: !ruby/object:Gem::Requirement
|
57
|
-
requirements:
|
58
|
-
- - "~>"
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
version: '3.39'
|
61
|
-
type: :development
|
62
|
-
prerelease: false
|
63
|
-
version_requirements: !ruby/object:Gem::Requirement
|
64
|
-
requirements:
|
65
|
-
- - "~>"
|
66
|
-
- !ruby/object:Gem::Version
|
67
|
-
version: '3.39'
|
68
|
-
- !ruby/object:Gem::Dependency
|
69
|
-
name: sqlite3
|
70
|
-
requirement: !ruby/object:Gem::Requirement
|
71
|
-
requirements:
|
72
|
-
- - "~>"
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
version: '1.6'
|
75
|
-
type: :development
|
76
|
-
prerelease: false
|
77
|
-
version_requirements: !ruby/object:Gem::Requirement
|
78
|
-
requirements:
|
79
|
-
- - "~>"
|
80
|
-
- !ruby/object:Gem::Version
|
81
|
-
version: '1.6'
|
82
|
-
- !ruby/object:Gem::Dependency
|
83
|
-
name: puma
|
84
|
-
requirement: !ruby/object:Gem::Requirement
|
85
|
-
requirements:
|
86
|
-
- - "~>"
|
87
|
-
- !ruby/object:Gem::Version
|
88
|
-
version: '6.0'
|
89
|
-
type: :development
|
90
|
-
prerelease: false
|
91
|
-
version_requirements: !ruby/object:Gem::Requirement
|
92
|
-
requirements:
|
93
|
-
- - "~>"
|
94
|
-
- !ruby/object:Gem::Version
|
95
|
-
version: '6.0'
|
96
|
-
- !ruby/object:Gem::Dependency
|
97
|
-
name: rubocop
|
98
|
-
requirement: !ruby/object:Gem::Requirement
|
99
|
-
requirements:
|
100
|
-
- - "~>"
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
version: '1.60'
|
103
|
-
type: :development
|
104
|
-
prerelease: false
|
105
|
-
version_requirements: !ruby/object:Gem::Requirement
|
106
|
-
requirements:
|
107
|
-
- - "~>"
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
version: '1.60'
|
110
|
-
- !ruby/object:Gem::Dependency
|
111
|
-
name: rubocop-rails
|
112
|
-
requirement: !ruby/object:Gem::Requirement
|
113
|
-
requirements:
|
114
|
-
- - "~>"
|
115
|
-
- !ruby/object:Gem::Version
|
116
|
-
version: '2.23'
|
117
|
-
type: :development
|
118
|
-
prerelease: false
|
119
|
-
version_requirements: !ruby/object:Gem::Requirement
|
120
|
-
requirements:
|
121
|
-
- - "~>"
|
122
|
-
- !ruby/object:Gem::Version
|
123
|
-
version: '2.23'
|
124
|
-
- !ruby/object:Gem::Dependency
|
125
|
-
name: rubocop-rspec
|
126
|
-
requirement: !ruby/object:Gem::Requirement
|
127
|
-
requirements:
|
128
|
-
- - "~>"
|
129
|
-
- !ruby/object:Gem::Version
|
130
|
-
version: '2.26'
|
131
|
-
type: :development
|
132
|
-
prerelease: false
|
133
|
-
version_requirements: !ruby/object:Gem::Requirement
|
134
|
-
requirements:
|
135
|
-
- - "~>"
|
136
|
-
- !ruby/object:Gem::Version
|
137
|
-
version: '2.26'
|
138
|
-
- !ruby/object:Gem::Dependency
|
139
|
-
name: factory_bot_rails
|
140
|
-
requirement: !ruby/object:Gem::Requirement
|
141
|
-
requirements:
|
142
|
-
- - "~>"
|
143
|
-
- !ruby/object:Gem::Version
|
144
|
-
version: '6.2'
|
145
|
-
type: :development
|
146
|
-
prerelease: false
|
147
|
-
version_requirements: !ruby/object:Gem::Requirement
|
148
|
-
requirements:
|
149
|
-
- - "~>"
|
150
|
-
- !ruby/object:Gem::Version
|
151
|
-
version: '6.2'
|
152
|
-
- !ruby/object:Gem::Dependency
|
153
|
-
name: database_cleaner-active_record
|
154
|
-
requirement: !ruby/object:Gem::Requirement
|
155
|
-
requirements:
|
156
|
-
- - "~>"
|
157
|
-
- !ruby/object:Gem::Version
|
158
|
-
version: '2.1'
|
159
|
-
type: :development
|
160
|
-
prerelease: false
|
161
|
-
version_requirements: !ruby/object:Gem::Requirement
|
162
|
-
requirements:
|
163
|
-
- - "~>"
|
164
|
-
- !ruby/object:Gem::Version
|
165
|
-
version: '2.1'
|
166
|
-
- !ruby/object:Gem::Dependency
|
167
|
-
name: pry
|
168
|
-
requirement: !ruby/object:Gem::Requirement
|
169
|
-
requirements:
|
170
|
-
- - "~>"
|
171
|
-
- !ruby/object:Gem::Version
|
172
|
-
version: '0.14'
|
173
|
-
type: :development
|
174
|
-
prerelease: false
|
175
|
-
version_requirements: !ruby/object:Gem::Requirement
|
176
|
-
requirements:
|
177
|
-
- - "~>"
|
178
|
-
- !ruby/object:Gem::Version
|
179
|
-
version: '0.14'
|
180
40
|
description: A lightweight, zero-dependency web interface for monitoring Solid Queue
|
181
41
|
jobs in Rails applications
|
182
42
|
email:
|
@@ -187,9 +47,18 @@ extra_rdoc_files: []
|
|
187
47
|
files:
|
188
48
|
- README.md
|
189
49
|
- Rakefile
|
190
|
-
- app/controllers/solid_queue_monitor/
|
50
|
+
- app/controllers/solid_queue_monitor/application_controller.rb
|
51
|
+
- app/controllers/solid_queue_monitor/base_controller.rb
|
52
|
+
- app/controllers/solid_queue_monitor/failed_jobs_controller.rb
|
53
|
+
- app/controllers/solid_queue_monitor/in_progress_jobs_controller.rb
|
54
|
+
- app/controllers/solid_queue_monitor/overview_controller.rb
|
55
|
+
- app/controllers/solid_queue_monitor/queues_controller.rb
|
56
|
+
- app/controllers/solid_queue_monitor/ready_jobs_controller.rb
|
57
|
+
- app/controllers/solid_queue_monitor/recurring_jobs_controller.rb
|
58
|
+
- app/controllers/solid_queue_monitor/scheduled_jobs_controller.rb
|
191
59
|
- app/presenters/solid_queue_monitor/base_presenter.rb
|
192
60
|
- app/presenters/solid_queue_monitor/failed_jobs_presenter.rb
|
61
|
+
- app/presenters/solid_queue_monitor/in_progress_jobs_presenter.rb
|
193
62
|
- app/presenters/solid_queue_monitor/jobs_presenter.rb
|
194
63
|
- app/presenters/solid_queue_monitor/queues_presenter.rb
|
195
64
|
- app/presenters/solid_queue_monitor/ready_jobs_presenter.rb
|
@@ -221,6 +90,7 @@ metadata:
|
|
221
90
|
homepage_uri: https://github.com/vishaltps/solid_queue_monitor
|
222
91
|
source_code_uri: https://github.com/vishaltps/solid_queue_monitor
|
223
92
|
changelog_uri: https://github.com/vishaltps/solid_queue_monitor/blob/main/CHANGELOG.md
|
93
|
+
rubygems_mfa_required: 'true'
|
224
94
|
rdoc_options: []
|
225
95
|
require_paths:
|
226
96
|
- lib
|
@@ -228,14 +98,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
228
98
|
requirements:
|
229
99
|
- - ">="
|
230
100
|
- !ruby/object:Gem::Version
|
231
|
-
version: 3.
|
101
|
+
version: 3.0.0
|
232
102
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
233
103
|
requirements:
|
234
104
|
- - ">="
|
235
105
|
- !ruby/object:Gem::Version
|
236
106
|
version: '0'
|
237
107
|
requirements: []
|
238
|
-
rubygems_version: 3.6.
|
108
|
+
rubygems_version: 3.6.7
|
239
109
|
specification_version: 4
|
240
110
|
summary: Simple monitoring interface for Solid Queue
|
241
111
|
test_files: []
|