ФУНКЦИИ - МЕЖПРОЕКТНАЯ КОММУНИКАЦИЯ: backlog-очередь Voice Tasker

This commit is contained in:
DCCONSTRUCTIONS
2026-04-28 20:10:05 +03:00
parent 5e57786d39
commit 0cda486b05
4 changed files with 218 additions and 34 deletions
@@ -630,22 +630,28 @@ type TLimitUsageOverviewProps = {
function LimitUsageOverview({ formState, monitor }: TLimitUsageOverviewProps) {
const totalSessions = monitor?.summary.total ?? 0;
const activeSessions = monitor?.summary.active ?? 0;
const processingSessions = monitor?.concurrency.used ?? 0;
const queuedSessions = monitor?.concurrency.queued ?? monitor?.summary.status_counts?.queued ?? 0;
const workspaceDailyRatio = getLimitRatio(totalSessions, formState.workspace_daily_limit);
const concurrencyRatio = getLimitRatio(activeSessions, formState.workspace_concurrency_limit);
const concurrencyRatio = getLimitRatio(processingSessions, formState.workspace_concurrency_limit);
return (
<div className="grid gap-3 border-t border-white/5 px-5 py-5 md:grid-cols-4">
<div className="grid gap-3 border-t border-white/5 px-5 py-5 md:grid-cols-5">
<LimitUsageCard
label="Workspace / сутки"
value={`${formatMonitorNumber(totalSessions)} / ${formatMonitorNumber(formState.workspace_daily_limit)}`}
ratio={workspaceDailyRatio}
/>
<LimitUsageCard
label="Очередь сейчас"
value={`${formatMonitorNumber(activeSessions)} / ${formatMonitorNumber(formState.workspace_concurrency_limit)}`}
label="OpenAI слоты"
value={`${formatMonitorNumber(processingSessions)} / ${formatMonitorNumber(formState.workspace_concurrency_limit)}`}
ratio={concurrencyRatio}
/>
<LimitUsageCard
label="В очереди"
value={formatMonitorNumber(queuedSessions)}
ratio={0}
/>
<LimitUsageCard
label="Project / сутки"
value={formatMonitorNumber(formState.project_daily_limit)}
@@ -899,9 +905,13 @@ function VoiceTaskMonitorSection({
<div className="flex flex-col gap-5 border-t border-white/5 px-5 py-5">
<div className="grid gap-3 md:grid-cols-4">
<MonitorMetricCard
label="Активные"
value={`${monitor.summary.active}/${monitor.concurrency.limit}`}
meta={staleCount ? `зависшие: ${staleCount}` : "очередь в норме"}
label="OpenAI слоты"
value={`${monitor.concurrency.used}/${monitor.concurrency.limit}`}
meta={
staleCount
? `зависшие: ${staleCount}`
: `в очереди: ${formatMonitorNumber(monitor.concurrency.queued ?? monitor.summary.status_counts?.queued ?? 0)}`
}
tone={staleCount ? "danger" : "accent"}
/>
<MonitorMetricCard