<div class="break-out bg-light border-bottom py-2 mb-3"> <div class="container-fluid pt-2"> <div class="d-flex align-items-center"> <div class="flex-fill"> <nav aria-label="breadcrumb"> <ol class="breadcrumb small mb-0"> <li class="breadcrumb-item"><%= link_to "Jobs", jobs_path %></li> <li class="breadcrumb-item active" aria-current="page">ActiveJob ID: <%= tag.code @job.id %></li> </ol> </nav> <h2 class="mb-1"><%= tag.code @job.job_class %></h2> <div class="text-muted small d-flex gap-2"> <div>Queue: <%= tag.strong @job.queue_name %></div> • <div>Priority: <%= tag.strong @job.priority %></div> </div> </div> <div> <% job_reschedulable = @job.status.in? [:scheduled, :retried, :queued] %> <%= button_to reschedule_job_path(@job.id), method: :put, class: "btn btn-sm #{job_reschedulable ? 'btn-outline-primary' : 'btn-outline-secondary'}", form_class: "d-inline-block", disabled: !job_reschedulable, aria: { label: "Reschedule job" }, title: "Reschedule job", data: { confirm: "Confirm reschedule" } do %> <%= render_icon "skip_forward" %> Reschedule <% end %> <% job_discardable = @job.status.in? [:scheduled, :retried, :queued] %> <%= button_to discard_job_path(@job.id), method: :put, class: "btn btn-sm #{job_discardable ? 'btn-outline-primary' : 'btn-outline-secondary'}", form_class: "d-inline-block", disabled: !job_discardable, aria: { label: "Discard job" }, title: "Discard job", data: { confirm: "Confirm discard" } do %> <%= render_icon "stop" %> Discard <% end %> <%= button_to retry_job_path(@job.id), method: :put, class: "btn btn-sm #{@job.status == :discarded ? 'btn-outline-primary' : 'btn-outline-secondary'}", form_class: "d-inline-block", disabled: @job.status != :discarded, aria: { label: "Retry job" }, title: "Retry job", data: { confirm: "Confirm retry" } do %> <%= render_icon "arrow_clockwise" %> Retry <% end %> <% job_destroyable = @job.status.in? [:discarded, :finished] %> <%= button_to job_path(@job.id), method: :delete, class: "btn btn-sm #{job_destroyable ? 'btn-outline-primary' : 'btn-outline-secondary'}", form_class: "d-inline-block", disabled: !job_destroyable, aria: { label: "Destroy job" }, title: "Destroy job", data: { confirm: "Confirm destroy" } do %> <%= render_icon "trash" %> Destroy <% end %> </div> </div> </div> </div> <div class="my-4"> <h5>Arguments</h5> <%= tag.pre @job.serialized_params["arguments"].map(&:inspect).join(', ') %> </div> <%= render 'executions', executions: @job.executions.includes_advisory_locks.reverse %>