\n
\n
\n
\n \n Sidekiq 任务列表\n
\n \n
\n 监控并管理系统后台所有异步与定时任务(包含已启动、执行中、将要执行与未启动的任务清单)\n
\n
\n
\n \n \n
\n
\n\n \n
\n
\n
\n
Redis 连接离线 / Sidekiq 未运行
\n
{{ data.error }}
\n
\n
\n\n \n
\n
\n 已处理任务\n {{ data.stats.processed?.toLocaleString() || 0 }}\n
\n
\n 失败次数\n 0 ? 'text-rose-600' : 'text-gray-800'\">\n {{ data.stats.failed?.toLocaleString() || 0 }}\n \n
\n
\n 正在执行\n 0 ? 'text-amber-600' : 'text-gray-800'\">\n {{ data.stats.workers_size || 0 }}\n \n
\n
\n 计划调度中\n {{ data.stats.scheduled_size || 0 }}\n
\n
\n 排队中\n {{ data.stats.enqueued || 0 }}\n
\n
\n 重试 / 死信\n 0 ? 'text-red-600' : 'text-gray-800'\">\n {{ (data.stats.retry_size || 0) + (data.stats.dead_size || 0) }}\n \n
\n
\n\n \n
\n \n \n \n \n \n \n \n
\n\n \n
\n
\n \n \n | 任务名称 / 说明 | \n Job 类名 | \n 队列 | \n 重试策略 | \n 当前运行状态 | \n 操作 | \n
\n \n \n \n | \n {{ job.name }}\n {{ job.description }}\n | \n \n {{ job.class_name }}\n | \n \n \n {{ job.queue }}\n \n | \n \n {{ job.retry ? `最多重试 ${job.retry} 次` : '无重试' }}\n | \n \n \n \n 已开启定时调度\n \n \n 下次:{{ formatCountdown(getScheduledForJob(job.class_name).in_seconds) }}\n \n \n 正在执行中...\n \n \n \n 计划中 (已入队)\n \n \n 未启动 (待触发)\n \n | \n \n \n 事件/上传触发\n | \n
\n \n
\n
\n\n \n
\n
\n \n 当前没有正在执行的任务\n
\n
\n \n \n | JID | \n Job 类名 | \n 所属队列 | \n 参数 | \n 开始时间 | \n 已运行时长 | \n
\n \n \n \n | {{ w.jid }} | \n {{ w.class_name }} | \n {{ w.queue }} | \n {{ w.args }} | \n {{ w.run_at }} | \n {{ w.duration_seconds }} 秒 | \n
\n \n
\n
\n\n \n
\n
\n \n 当前没有计划调度中的延迟任务\n
\n
\n
\n \n
\n
\n \n \n | JID | \n Job 类名 | \n 参数 | \n 预定执行时间 (本地时间) | \n 倒计时 / 状态 | \n 操作 | \n
\n \n \n \n | {{ s.jid }} | \n {{ s.class_name }} | \n {{ s.args }} | \n \n {{ formatLocalTime(s.at_iso || s.at) }}\n | \n \n {{ formatCountdown(s.in_seconds) }}\n | \n \n \n | \n
\n \n
\n
\n
\n\n \n
\n
\n \n 队列为空,没有排队中的任务\n
\n
\n \n \n | JID | \n Job 类名 | \n 队列 | \n 参数 | \n 入队时间 | \n
\n \n \n \n | {{ e.jid }} | \n {{ e.class_name }} | \n {{ e.queue }} | \n {{ e.args }} | \n {{ e.created_at }} | \n
\n \n
\n
\n\n \n
\n \n
\n
\n 重试队列 ({{ data?.retries?.length || 0 }})\n
\n
\n 暂无重试任务\n
\n
\n
\n \n \n | JID / Job | \n 错误信息 | \n 重试次数 | \n 下次重试时间 | \n 操作 | \n
\n \n \n \n | \n {{ r.class_name }}\n {{ r.jid }}\n | \n \n {{ r.error_message }}\n | \n {{ r.retry_count }} 次 | \n {{ r.next_at }} | \n \n \n \n | \n
\n \n
\n
\n
\n\n \n
\n
\n 死信队列 ({{ data?.dead?.length || 0 }})\n
\n
\n 暂无死信任务\n
\n
\n
\n \n \n | JID / Job | \n 错误信息 | \n 失败时间 | \n 操作 | \n
\n \n \n \n | \n {{ d.class_name }}\n {{ d.jid }}\n | \n \n {{ d.error_message }}\n | \n {{ d.failed_at }} | \n \n \n \n | \n
\n \n
\n
\n
\n
\n\n \n
\n
\n
\n 正在监听当前 Redis 队列的 Sidekiq 实例 ({{ data?.processes?.length || 0 }})\n
\n 若存在多个不同机器或旧启动时间的进程,可能导致旧进程抢占任务报错\n \n\n
\n 暂无活跃 Sidekiq 进程连接\n
\n
\n
\n \n \n | 实例标识 (Identity) | \n 所属库 (Database) | \n 主机名 (Hostname) | \n 进程 PID | \n 并发线程 (Concurrency) | \n 忙碌线程 (Busy) | \n 启动时间 (Started At) | \n
\n \n \n \n | {{ p.identity }} | \n \n \n {{ p.db_name }}\n \n | \n \n {{ p.hostname }}\n | \n {{ p.pid }} | \n {{ p.concurrency }} 线程 | \n \n 0 ? 'text-amber-600 font-bold' : 'text-gray-400'\">{{ p.busy }}\n | \n {{ p.started_at }} | \n
\n \n
\n
\n
\n\n \n
\n
\n
\n 已完成/记录的历史任务 ({{ data?.completed?.length || 0 }})\n
\n 最近 50 条已处理任务的历史记录\n \n\n
\n 暂无已完成任务记录\n
\n
\n
\n \n \n | JID / Job | \n 参数 (Args) | \n 状态 (Status) | \n 执行时间 (Started / Finished) | \n 耗时 (Duration) | \n
\n \n \n \n | \n {{ c.class_name }}\n {{ c.jid }}\n | \n {{ c.args }} | \n \n \n {{ c.status === 'completed' ? '成功' : (c.status === 'failed' ? '失败' : c.status) }}\n \n {{ c.error_message }} \n | \n \n 起: {{ c.started_at }} \n 止: {{ c.finished_at }} \n | \n \n {{ c.duration ? c.duration + 's' : '-' }}\n | \n
\n \n
\n
\n
\n
\n