que-view 0.4.0 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 892e7e3d60cac8ff0d076575cb10454e88a2210f537d446bf8af5942f8ba945c
4
- data.tar.gz: 92b8d7b993e6d9e6d7c572a144b63a8b00025e4ee9e28096f177f77bc41203f0
3
+ metadata.gz: ca1165b499081e6a124caf37e168c75bd7e74d79c6cd7d4e6445925b9c32589e
4
+ data.tar.gz: e844c8f96e9eb7021124bb8e420302629805637fa0af9caef16d1b5aad5b03a1
5
5
  SHA512:
6
- metadata.gz: 6a67ca26a2c007d69be9bd7a036a726cc129bb083c9dd86671edd5aaa70882130158b2f8d7573574785b7523b3b2c2c06cad25bfb850e8d5d52dda694192e9eb
7
- data.tar.gz: 7b9e498a11c818b8f8cb6d67ba1d816d5d3a4387147fb7ae33ca31dfb400fc51d00e974e1ccacb7683aff92da0090bd170909729809cc0255255d82d0f73d120
6
+ metadata.gz: f0256e1fce181ec2ff9864bbe1e9b90deff9191cd0421415ebf077445683bd23b1f9a2418bfb5f582c4a679c2c0509fe478b644e4f561fbf6f1936be27c5abae
7
+ data.tar.gz: ca009f6f1c8b8af5bfb9963daef9c32eaead6120b0558eb37542dd5a49845ffe9faeebf97ae6594e5023f171346858c9ed869cc214db56a3ac74979e63456521
@@ -15,6 +15,34 @@ module Que
15
15
 
16
16
  job[:last_error_message].lines.first || ''
17
17
  end
18
+
19
+ def humanized_job_args(job)
20
+ case job[:job_class]
21
+ when 'ActiveJob::QueueAdapters::QueAdapter::JobWrapper' then active_job_args(job)
22
+ else que_args(job)
23
+ end.join('<br />').html_safe
24
+ end
25
+
26
+ def humanized_enqueued_at(job)
27
+ case job[:job_class]
28
+ when 'ActiveJob::QueueAdapters::QueAdapter::JobWrapper'
29
+ job.dig(:args, 0, :enqueued_at).to_time.strftime('%Y-%m-%d %H:%M:%S')
30
+ end
31
+ end
32
+
33
+ private
34
+
35
+ def active_job_args(job)
36
+ job.dig(:args, 0, :arguments)&.map do |arg|
37
+ next arg.except(:_aj_ruby2_keywords, :_aj_symbol_keys) if arg.is_a?(Hash)
38
+
39
+ arg
40
+ end || []
41
+ end
42
+
43
+ def que_args(job)
44
+ job[:args].push(job[:kwargs])
45
+ end
18
46
  end
19
47
  end
20
48
  end
@@ -50,11 +50,7 @@
50
50
  <td><%= humanized_job_class(job) %></td>
51
51
  <td><%= job[:queue] %></td>
52
52
  <td><%= job[:run_at].strftime("%Y-%m-%d %H:%M:%S") %></td>
53
- <td>
54
- <% Array(job.dig(:args, 0, :arguments)).each do |argument| %>
55
- <p><%= argument %></p>
56
- <% end %>
57
- </td>
53
+ <td><%= humanized_job_args(job) %></td>
58
54
  <% if params[:status] == 'failing' %>
59
55
  <td><%= job[:error_count] %></td>
60
56
  <td><%= format_error(job) %></td>
@@ -20,7 +20,7 @@
20
20
  </tr>
21
21
  <tr>
22
22
  <th>Enqueued at</th>
23
- <td><%= @job.dig(:args, 0, :enqueued_at).to_time.strftime('%Y-%m-%d %H:%M:%S') %></td>
23
+ <td><%= humanized_enqueued_at(@job) %></td>
24
24
  </tr>
25
25
  <tr>
26
26
  <th>Run at</th>
@@ -33,9 +33,7 @@
33
33
  <tr>
34
34
  <th>Args</th>
35
35
  <td>
36
- <% Array(@job.dig(:args, 0, :arguments)).each do |argument| %>
37
- <p><%= argument %></p>
38
- <% end %>
36
+ <%= humanized_job_args(@job) %>
39
37
  </td>
40
38
  </tr>
41
39
  <tr>
data/lib/que/view/dsl.rb CHANGED
@@ -163,10 +163,17 @@ module Que
163
163
 
164
164
  def fetch_job_names_sql(queue_name)
165
165
  <<-SQL.squish
166
- SELECT COUNT(*) AS count_all, args #>> '{0, job_class}' AS job_name
166
+ SELECT COUNT(*) AS count_all,
167
+ CASE
168
+ WHEN job_class = 'ActiveJob::QueueAdapters::QueAdapter::JobWrapper' THEN args #>> '{0, job_class}'
169
+ ELSE job_class
170
+ END AS job_name
167
171
  FROM que_jobs
168
172
  #{queue_name.present? ? "WHERE queue = '#{queue_name}'" : ""}
169
- GROUP BY args #>> '{0, job_class}'
173
+ GROUP BY CASE
174
+ WHEN job_class = 'ActiveJob::QueueAdapters::QueAdapter::JobWrapper' THEN args #>> '{0, job_class}'
175
+ ELSE job_class
176
+ END
170
177
  SQL
171
178
  end
172
179
 
@@ -208,7 +215,17 @@ module Que
208
215
  def search_condition(params)
209
216
  result = ''
210
217
  result += "AND queue = '#{params[:queue_name]}'" if params[:queue_name].present?
211
- result += "AND args #>> '{0, job_class}' = ('#{params[:job_name]}')" if params[:job_name].present?
218
+ if params[:job_name].present?
219
+ result += <<~SQL
220
+ AND (
221
+ job_class = '#{params[:job_name]}'
222
+ OR (
223
+ job_class = 'ActiveJob::QueueAdapters::QueAdapter::JobWrapper'
224
+ AND args #>> '{0, job_class}' = '#{params[:job_name]}'
225
+ )
226
+ )
227
+ SQL
228
+ end
212
229
  result
213
230
  end
214
231
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Que
4
4
  module View
5
- VERSION = '0.4.0'
5
+ VERSION = '0.4.2'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: que-view
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bogdanov Anton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-07-31 00:00:00.000000000 Z
11
+ date: 2025-01-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: que