sidekiq-enqueuer 1.0.0 → 1.0.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.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/README.md +14 -1
- data/lib/sidekiq/enqueuer.rb +28 -10
- data/lib/sidekiq/enqueuer/version.rb +1 -1
- data/lib/sidekiq/enqueuer/views/index.erb +3 -3
- data/lib/sidekiq/enqueuer/views/new.erb +5 -0
- data/sidekiq-enqueuer.gemspec +2 -2
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: db4c4b0c1816251c65a6e03abf0163c6eb640a3f
|
4
|
+
data.tar.gz: ca07096636cc304c81ae844787d4e80e52db874b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 57bc674fb3fc33cd790368596d13c16f86cecbe708e579a5de965f3db645d4fb7ff0cfbf8dc697fce7730b49c27bbe33901bfcda7ba7fe723cd994eb6a959492
|
7
|
+
data.tar.gz: 9a69db182e806570b852aa90699da544d4e21a45b29347547327d86c6134cc11a110279a519e529eb11e33827f550d00381e8bf077a89f5517b83acd9a72f34a
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -20,7 +20,20 @@ Or install it yourself as:
|
|
20
20
|
|
21
21
|
## Usage
|
22
22
|
|
23
|
-
|
23
|
+
* Open Sidekiq Web, click the Enqueuer tab.
|
24
|
+
|
25
|
+
* You can see a list of job classes/modules and params. Click Enqueue Form.
|
26
|
+
|
27
|
+

|
28
|
+
|
29
|
+
* Fill the form, click Enqueue or Schedule.
|
30
|
+

|
31
|
+
|
32
|
+
* That is it!
|
33
|
+
|
34
|
+
## Form filling
|
35
|
+
* Support string value and hash value.
|
36
|
+
* Hash value should start with {, hash value will be parsed by YAML, eg: {k1: v1, k2: v2} to {'k1'=> 'v1', 'k2'=> 'v2'}.
|
24
37
|
|
25
38
|
|
26
39
|
## Contributing
|
data/lib/sidekiq/enqueuer.rb
CHANGED
@@ -5,11 +5,9 @@ require 'sidekiq/enqueuer/railtie' if defined? ::Rails::Railtie
|
|
5
5
|
|
6
6
|
module Sidekiq
|
7
7
|
module Enqueuer
|
8
|
-
def self.
|
9
|
-
|
10
|
-
if defined?(::Rails) && ::Rails.env != 'production' && has_eager_loaded == false
|
8
|
+
def self.rails_eager_load
|
9
|
+
if defined?(::Rails) && ::Rails.env != 'production'
|
11
10
|
::Rails.application.eager_load!
|
12
|
-
has_eager_loaded = true
|
13
11
|
end
|
14
12
|
end
|
15
13
|
|
@@ -24,12 +22,16 @@ module Sidekiq
|
|
24
22
|
end
|
25
23
|
|
26
24
|
def self.get_jobs
|
27
|
-
|
25
|
+
return @jobs if @jobs
|
26
|
+
|
27
|
+
rails_eager_load
|
28
28
|
jobs = get_job_modules + get_job_classes
|
29
|
-
jobs.map(&:to_s).uniq.map(&:constantize)
|
29
|
+
@jobs = jobs.map(&:to_s).uniq.map(&:constantize)
|
30
30
|
end
|
31
31
|
|
32
32
|
def self.is_job_class?(klass)
|
33
|
+
return false if !defined?(::ActiveJob)
|
34
|
+
|
33
35
|
klass < ::ActiveJob::Base
|
34
36
|
end
|
35
37
|
|
@@ -38,20 +40,36 @@ module Sidekiq
|
|
38
40
|
end
|
39
41
|
|
40
42
|
def self.perform_async(klass, values)
|
43
|
+
parsed_values = values_parser(values)
|
41
44
|
if is_job_class?(klass)
|
42
|
-
klass.perform_later(*
|
45
|
+
klass.perform_later(*parsed_values)
|
43
46
|
elsif has_worker_module?(klass)
|
44
|
-
klass.perform_async(*
|
47
|
+
klass.perform_async(*parsed_values)
|
45
48
|
end
|
46
49
|
end
|
47
50
|
|
48
51
|
def self.perform_in(klass, seconds_str, values)
|
52
|
+
parsed_values = values_parser(values)
|
49
53
|
seconds = seconds_str.to_i.seconds
|
50
54
|
if is_job_class?(klass)
|
51
|
-
klass.set(wait: seconds).perform_later(*
|
55
|
+
klass.set(wait: seconds).perform_later(*parsed_values)
|
52
56
|
elsif has_worker_module?(klass)
|
53
|
-
klass.perform_in(seconds, *
|
57
|
+
klass.perform_in(seconds, *parsed_values)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
def self.values_parser(values)
|
62
|
+
parsed_values = []
|
63
|
+
errors = []
|
64
|
+
for value in values.map(&:strip)
|
65
|
+
if value =~ /^{/
|
66
|
+
parsed_values << YAML.load(value) rescue errors << value
|
67
|
+
else
|
68
|
+
parsed_values << value
|
69
|
+
end
|
54
70
|
end
|
71
|
+
raise errors if errors.size > 0
|
72
|
+
parsed_values
|
55
73
|
end
|
56
74
|
|
57
75
|
end
|
@@ -11,9 +11,9 @@
|
|
11
11
|
<tbody>
|
12
12
|
<% for job in @jobs %>
|
13
13
|
<tr>
|
14
|
-
<td><%= job %></td>
|
15
|
-
<td><%= get_job_perform_params(job).join(', ') %></td>
|
16
|
-
<td><a href="<%= root_path %>enqueuer/<%= job %>" class="btn btn-danger btn-xs" style="color: white;">Enqueue Form</a></td>
|
14
|
+
<td width="40%"><%= job %></td>
|
15
|
+
<td width="40%"><%= get_job_perform_params(job).join(', ') %></td>
|
16
|
+
<td width="20%"><a href="<%= root_path %>enqueuer/<%= job %>" class="btn btn-danger btn-xs" style="color: white;">Enqueue Form</a></td>
|
17
17
|
</tr>
|
18
18
|
<% end %>
|
19
19
|
</tbody>
|
@@ -1,5 +1,10 @@
|
|
1
1
|
<h3>Enqueuer</h3>
|
2
2
|
|
3
|
+
<div class="well">
|
4
|
+
<p>Support string value and hash value.</p>
|
5
|
+
<p>Hash value should start with {, hash value will be parsed by YAML, eg: {k1: v1, k2: v2} to {'k1'=> 'v1', 'k2'=> 'v2'} </p>
|
6
|
+
</div>
|
7
|
+
|
3
8
|
<form method="post" action="<%= root_path %>enqueuer">
|
4
9
|
<%= csrf_tag if respond_to?(:csrf_tag) %>
|
5
10
|
|
data/sidekiq-enqueuer.gemspec
CHANGED
@@ -9,8 +9,8 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.authors = ["richfisher"]
|
10
10
|
spec.email = ["richfisher.pan@gmail.com"]
|
11
11
|
|
12
|
-
spec.summary = %q{A Sidekiq Web extension to enqueue/schedule
|
13
|
-
spec.description = %q{A Sidekiq Web extension to enqueue/schedule
|
12
|
+
spec.summary = %q{A Sidekiq Web extension to enqueue/schedule jobs with custom perform params in Web UI.}
|
13
|
+
spec.description = %q{A Sidekiq Web extension to enqueue/schedule jobs with custom perform params in Web UI. Support both Sidekiq::Worker and ActiveJob.}
|
14
14
|
spec.homepage = "https://github.com/richfisher/sidekiq-enqueuer"
|
15
15
|
|
16
16
|
# Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sidekiq-enqueuer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- richfisher
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-04-
|
11
|
+
date: 2016-04-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -94,8 +94,8 @@ dependencies:
|
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
|
-
description: A Sidekiq Web extension to enqueue/schedule
|
98
|
-
Sidekiq::Worker and ActiveJob.
|
97
|
+
description: A Sidekiq Web extension to enqueue/schedule jobs with custom perform
|
98
|
+
params in Web UI. Support both Sidekiq::Worker and ActiveJob.
|
99
99
|
email:
|
100
100
|
- richfisher.pan@gmail.com
|
101
101
|
executables: []
|
@@ -139,5 +139,6 @@ rubyforge_project:
|
|
139
139
|
rubygems_version: 2.4.8
|
140
140
|
signing_key:
|
141
141
|
specification_version: 4
|
142
|
-
summary: A Sidekiq Web extension to enqueue/schedule
|
142
|
+
summary: A Sidekiq Web extension to enqueue/schedule jobs with custom perform params
|
143
|
+
in Web UI.
|
143
144
|
test_files: []
|