feat(runner): queue workflow runs with BullMQ (phase A)

Enqueue HTTP, cron, and manual runs via Redis/BullMQ; workers execute
asynchronously with configurable concurrency. Triggers return 202 and
clients poll GET /api/runs/:id for progress (queued → running → done).

Co-authored-by: Nasyarobby Putra <nasyarobby@gmail.com>
This commit is contained in:
Cursor Agent
2026-08-19 04:25:21 +00:00
co-authored by nsrb
parent 93362208a2
commit a95e6d7bc8
14 changed files with 716 additions and 201 deletions
+2 -2
View File
@@ -43,7 +43,7 @@ export function HomePage() {
<div className="stat-figure text-warning">
<LuActivity className="size-7" />
</div>
<div className="stat-title">Running</div>
<div className="stat-title">Active</div>
<div className="stat-value text-2xl">{data.running?.length ?? 0}</div>
</div>
<div className="stat">
@@ -58,7 +58,7 @@ export function HomePage() {
</div>
<section>
<h2 className="text-lg font-semibold mb-2">Running</h2>
<h2 className="text-lg font-semibold mb-2">Queued / running</h2>
<RunList runs={data.running} empty="None" />
</section>