que-view 0.4.0 → 0.4.2

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 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