Merge pull request 'fix(ci): CI config fix + 25 workers + pool starts paused' (#31) from fix/ci-filename into master

Reviewed-on: https://code.cannabrands.app/Creationshop/dispensary-scraper/pulls/31
This commit is contained in:
kelly
2025-12-11 08:47:26 +00:00
4 changed files with 13 additions and 31 deletions

View File

@@ -6,10 +6,12 @@
* task-service.ts and routes/tasks.ts.
*
* State is in-memory and resets on server restart.
* By default, the pool is OPEN (not paused).
* By default, the pool is PAUSED (closed) - admin must explicitly start it.
* This prevents workers from immediately grabbing tasks on deploy before
* the system is ready.
*/
let taskPoolPaused = false;
let taskPoolPaused = true;
export function isTaskPoolPaused(): boolean {
return taskPoolPaused;

View File

@@ -280,7 +280,7 @@ export default function TasksDashboard() {
>
<div className="flex items-center gap-2 mb-2">
<span className={`p-1.5 rounded ${STATUS_COLORS[status]}`}>
{STATUS_ICONS[status]}
{getStatusIcon(status, poolPaused)}
</span>
<span className="text-sm font-medium text-gray-600 capitalize">{status}</span>
</div>

View File

@@ -292,16 +292,6 @@ export function WorkersDashboard() {
}
}, []);
// Cleanup stale workers
const handleCleanupStale = async () => {
try {
await api.post('/api/worker-registry/cleanup', { stale_threshold_minutes: 2 });
fetchData();
} catch (err: any) {
console.error('Cleanup error:', err);
}
};
// Remove a single worker
const handleRemoveWorker = async (workerId: string) => {
if (!confirm('Remove this worker from the registry?')) return;
@@ -364,15 +354,6 @@ export function WorkersDashboard() {
{workers.length} registered workers ({busyWorkers.length} busy, {idleWorkers.length} idle)
</p>
</div>
<div className="flex items-center gap-2">
<button
onClick={handleCleanupStale}
className="flex items-center gap-2 px-4 py-2 bg-gray-100 text-gray-700 rounded-lg hover:bg-gray-200 transition-colors"
title="Mark stale workers (no heartbeat > 2 min) as offline"
>
<Trash2 className="w-4 h-4" />
Cleanup Stale
</button>
<button
onClick={() => fetchData()}
className="flex items-center gap-2 px-4 py-2 bg-emerald-600 text-white rounded-lg hover:bg-emerald-700 transition-colors"
@@ -381,7 +362,6 @@ export function WorkersDashboard() {
Refresh
</button>
</div>
</div>
{error && (
<div className="bg-red-50 border border-red-200 rounded-lg p-4">

View File

@@ -12,7 +12,7 @@ metadata:
name: scraper-worker
namespace: dispensary-scraper
spec:
replicas: 5
replicas: 25
selector:
matchLabels:
app: scraper-worker