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..ec03476683 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,8 +103,12 @@ 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), + 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 a35886054d..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 @@ -43,6 +43,14 @@ <.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") %>

+ +

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 1a8b755ef3..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,9 +15,12 @@ defmodule JobsTableComponent do worker args inserted_at (Paris time) - <%= if @state == "discarded" do %> + <%= if @state in ["discarded", "retryable"] do %> errors <% end %> + <%= if @state in ["scheduled", "retryable"] do %> + scheduled_at (Paris time) + <% end %> @@ -29,9 +32,12 @@ 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 in ["scheduled", "retryable"] 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