From 9c26ae4b5b1cbd9741781d57b617e0907694ae54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Menou?= Date: Tue, 26 Nov 2024 14:59:08 +0100 Subject: [PATCH 1/2] Backoffice: affichage des jobs "scheduled" --- .../lib/transport_web/live/backoffice/jobs_live.ex | 4 +++- .../lib/transport_web/live/backoffice/jobs_live.html.heex | 4 ++++ .../transport_web/live/backoffice/jobs_table_component.ex | 8 +++++++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/apps/transport/lib/transport_web/live/backoffice/jobs_live.ex b/apps/transport/lib/transport_web/live/backoffice/jobs_live.ex index c130e1e9e0..a17cb44738 100644 --- a/apps/transport/lib/transport_web/live/backoffice/jobs_live.ex +++ b/apps/transport/lib/transport_web/live/backoffice/jobs_live.ex @@ -47,7 +47,7 @@ defmodule TransportWeb.Backoffice.JobsLive do def last_jobs_query(state, n) do from(j in "oban_jobs", - select: map(j, [:id, :state, :queue, :worker, :args, :inserted_at, :errors]), + select: map(j, [:id, :state, :queue, :worker, :args, :inserted_at, :scheduled_at, :errors]), order_by: [desc: j.id], where: j.state == ^state, limit: ^n @@ -103,6 +103,8 @@ defmodule TransportWeb.Backoffice.JobsLive do count_completed_jobs: count_jobs("completed", worker_filter), available_jobs: last_jobs("available", 5, worker_filter), count_available_jobs: count_jobs("available", worker_filter), + scheduled_jobs: last_jobs("scheduled", 5, worker_filter), + count_scheduled_jobs: count_jobs("scheduled", worker_filter), last_discarded_jobs: last_jobs("discarded", 5, worker_filter), count_discarded_jobs: count_jobs("discarded", worker_filter), jobs_count: jobs_count(worker_filter) diff --git a/apps/transport/lib/transport_web/live/backoffice/jobs_live.html.heex b/apps/transport/lib/transport_web/live/backoffice/jobs_live.html.heex index a35886054d..8122112725 100644 --- a/apps/transport/lib/transport_web/live/backoffice/jobs_live.html.heex +++ b/apps/transport/lib/transport_web/live/backoffice/jobs_live.html.heex @@ -43,6 +43,10 @@ <.live_component module={JobsTableComponent} jobs={@last_completed_jobs} state="completed" id="completed_jobs" />

Total: <%= Helpers.format_number(@count_completed_jobs, locale: "en") %>

+

Scheduled jobs

+ <.live_component module={JobsTableComponent} jobs={@scheduled_jobs} state="scheduled" id="scheduled_jobs" /> +

Total: <%= Helpers.format_number(@count_scheduled_jobs, locale: "en") %>

+

Available jobs

<.live_component module={JobsTableComponent} jobs={@available_jobs} state="available" id="available_jobs" />

Total: <%= Helpers.format_number(@count_available_jobs, locale: "en") %>

diff --git a/apps/transport/lib/transport_web/live/backoffice/jobs_table_component.ex b/apps/transport/lib/transport_web/live/backoffice/jobs_table_component.ex index 1a8b755ef3..64145b5f13 100644 --- a/apps/transport/lib/transport_web/live/backoffice/jobs_table_component.ex +++ b/apps/transport/lib/transport_web/live/backoffice/jobs_table_component.ex @@ -18,6 +18,9 @@ defmodule JobsTableComponent do <%= if @state == "discarded" do %> errors <% end %> + <%= if @state == "scheduled" do %> + scheduled_at (Paris time) + <% end %> @@ -32,6 +35,9 @@ defmodule JobsTableComponent do <%= if @state == "discarded" do %> <%= inspect(job.errors) %> <% end %> + <%= if @state == "scheduled" do %> + <%= format_datetime(job.scheduled_at) %> + <% end %> <% end %> @@ -40,6 +46,6 @@ defmodule JobsTableComponent do end defp format_datetime(dt) do - Shared.DateTimeDisplay.format_datetime_to_paris(dt, "en", no_timezone: true) + Shared.DateTimeDisplay.format_datetime_to_paris(dt, "en", no_timezone: true, with_seconds: true) end end From 443ea207e592da67b299ff8165132142d89340ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Menou?= Date: Tue, 26 Nov 2024 21:13:10 +0100 Subject: [PATCH 2/2] Backoffice: affichage des jobs "retryable" --- .../lib/transport_web/live/backoffice/jobs_live.ex | 2 ++ .../lib/transport_web/live/backoffice/jobs_live.html.heex | 4 ++++ .../transport_web/live/backoffice/jobs_table_component.ex | 8 ++++---- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/apps/transport/lib/transport_web/live/backoffice/jobs_live.ex b/apps/transport/lib/transport_web/live/backoffice/jobs_live.ex index a17cb44738..ec03476683 100644 --- a/apps/transport/lib/transport_web/live/backoffice/jobs_live.ex +++ b/apps/transport/lib/transport_web/live/backoffice/jobs_live.ex @@ -107,6 +107,8 @@ defmodule TransportWeb.Backoffice.JobsLive do count_scheduled_jobs: count_jobs("scheduled", worker_filter), last_discarded_jobs: last_jobs("discarded", 5, worker_filter), count_discarded_jobs: count_jobs("discarded", worker_filter), + retryable_jobs: last_jobs("retryable", 5, worker_filter), + count_retryable_jobs: count_jobs("retryable", worker_filter), jobs_count: jobs_count(worker_filter) ) end diff --git a/apps/transport/lib/transport_web/live/backoffice/jobs_live.html.heex b/apps/transport/lib/transport_web/live/backoffice/jobs_live.html.heex index 8122112725..776bc140a4 100644 --- a/apps/transport/lib/transport_web/live/backoffice/jobs_live.html.heex +++ b/apps/transport/lib/transport_web/live/backoffice/jobs_live.html.heex @@ -47,6 +47,10 @@ <.live_component module={JobsTableComponent} jobs={@scheduled_jobs} state="scheduled" id="scheduled_jobs" />

Total: <%= Helpers.format_number(@count_scheduled_jobs, locale: "en") %>

+

Retryable jobs

+ <.live_component module={JobsTableComponent} jobs={@retryable_jobs} state="retryable" id="retryable_jobs" /> +

Total: <%= Helpers.format_number(@count_retryable_jobs, locale: "en") %>

+

Available jobs

<.live_component module={JobsTableComponent} jobs={@available_jobs} state="available" id="available_jobs" />

Total: <%= Helpers.format_number(@count_available_jobs, locale: "en") %>

diff --git a/apps/transport/lib/transport_web/live/backoffice/jobs_table_component.ex b/apps/transport/lib/transport_web/live/backoffice/jobs_table_component.ex index 64145b5f13..c33e4df09a 100644 --- a/apps/transport/lib/transport_web/live/backoffice/jobs_table_component.ex +++ b/apps/transport/lib/transport_web/live/backoffice/jobs_table_component.ex @@ -15,10 +15,10 @@ defmodule JobsTableComponent do worker args inserted_at (Paris time) - <%= if @state == "discarded" do %> + <%= if @state in ["discarded", "retryable"] do %> errors <% end %> - <%= if @state == "scheduled" do %> + <%= if @state in ["scheduled", "retryable"] do %> scheduled_at (Paris time) <% end %> @@ -32,10 +32,10 @@ defmodule JobsTableComponent do <%= job.worker %> <%= inspect(job.args) %> <%= format_datetime(job.inserted_at) %> - <%= if @state == "discarded" do %> + <%= if @state in ["discarded", "retryable"] do %> <%= inspect(job.errors) %> <% end %> - <%= if @state == "scheduled" do %> + <%= if @state in ["scheduled", "retryable"] do %> <%= format_datetime(job.scheduled_at) %> <% end %>