Kelly
4949b22457
feat(tasks): Refactor task workflow with payload/refresh separation
Major changes:
- Split crawl into payload_fetch (API → disk) and product_refresh (disk → DB)
- Add task chaining: store_discovery → product_discovery → payload_fetch → product_refresh
- Add payload storage utilities for gzipped JSON on filesystem
- Add /api/payloads endpoints for payload access and diffing
- Add DB-driven TaskScheduler with schedule persistence
- Track newDispensaryIds through discovery promotion for chaining
- Add stealth improvements: HTTP fingerprinting, proxy rotation enhancements
- Add Workers dashboard K8s scaling controls
New files:
- src/tasks/handlers/payload-fetch.ts - Fetches from API, saves to disk
- src/services/task-scheduler.ts - DB-driven schedule management
- src/utils/payload-storage.ts - Payload save/load utilities
- src/routes/payloads.ts - Payload API endpoints
- src/services/http-fingerprint.ts - Browser fingerprint generation
- docs/TASK_WORKFLOW_2024-12-10.md - Complete workflow documentation
Migrations:
- 078: Proxy consecutive 403 tracking
- 079: task_schedules table
- 080: raw_crawl_payloads table
- 081: payload column and last_fetch_at
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-10 22:15:35 -07:00
..
2025-11-28 19:45:44 -07:00
2025-11-28 19:45:44 -07:00
2025-11-28 19:45:44 -07:00
2025-12-07 23:48:35 -07:00
2025-11-28 19:45:44 -07:00
2025-11-28 19:45:44 -07:00
2025-12-07 23:48:35 -07:00
2025-12-07 23:48:35 -07:00
2025-12-07 23:48:35 -07:00
2025-12-07 23:48:35 -07:00
2025-11-30 09:29:15 -07:00
2025-11-30 09:29:15 -07:00
2025-11-30 09:29:15 -07:00
2025-11-30 09:29:15 -07:00
2025-11-30 09:29:15 -07:00
2025-11-30 09:29:15 -07:00
2025-11-30 18:54:52 -07:00
2025-11-30 18:54:52 -07:00
2025-11-30 18:54:52 -07:00
2025-12-01 00:07:00 -07:00
2025-11-30 23:52:48 -07:00
2025-12-01 00:13:41 -07:00
2025-12-01 00:18:47 -07:00
2025-12-01 08:52:54 -07:00
2025-12-01 13:59:01 -07:00
2025-12-02 13:28:23 -07:00
2025-12-02 13:28:23 -07:00
2025-12-02 13:28:23 -07:00
2025-12-02 11:34:01 -07:00
2025-12-02 13:28:23 -07:00
2025-12-02 13:28:23 -07:00
2025-12-03 18:45:05 -07:00
2025-12-03 18:45:05 -07:00
2025-12-03 18:45:05 -07:00
2025-12-05 16:10:15 -07:00
2025-12-05 16:10:15 -07:00
2025-12-07 11:30:57 -07:00
2025-12-07 11:30:57 -07:00
2025-12-07 11:30:57 -07:00
2025-12-07 11:30:57 -07:00
2025-12-07 11:30:57 -07:00
2025-12-07 11:30:57 -07:00
2025-12-07 11:30:57 -07:00
2025-12-07 11:30:57 -07:00
2025-12-07 11:30:57 -07:00
2025-12-07 11:30:57 -07:00
2025-12-07 11:30:57 -07:00
2025-12-07 11:30:57 -07:00
2025-12-07 11:30:57 -07:00
2025-12-07 11:30:57 -07:00
2025-12-07 11:30:57 -07:00
2025-12-09 00:05:34 -07:00
2025-12-07 11:30:57 -07:00
2025-12-07 11:30:57 -07:00
2025-12-07 11:30:57 -07:00
2025-12-09 00:05:34 -07:00
2025-12-07 11:30:57 -07:00
2025-12-07 11:30:57 -07:00
2025-12-07 11:30:57 -07:00
2025-12-07 11:30:57 -07:00
2025-12-07 11:30:57 -07:00
2025-12-08 10:19:49 -07:00
2025-12-07 11:04:12 -07:00
2025-12-07 11:04:12 -07:00
2025-12-07 11:04:12 -07:00
2025-12-07 22:48:21 -07:00
2025-12-07 22:48:21 -07:00
2025-12-07 22:48:21 -07:00
2025-12-07 22:48:21 -07:00
2025-12-07 23:18:52 -07:00
2025-12-08 10:19:49 -07:00
2025-12-09 00:05:34 -07:00
2025-12-09 00:05:34 -07:00
2025-12-09 00:05:34 -07:00
2025-12-09 00:05:34 -07:00
2025-12-09 00:05:34 -07:00
2025-12-09 00:05:34 -07:00
2025-12-09 00:05:34 -07:00
2025-12-09 11:04:50 -07:00
2025-12-09 16:27:03 -07:00
2025-12-09 20:44:53 -07:00
2025-12-10 00:44:59 -07:00
2025-12-10 00:44:59 -07:00
2025-12-10 00:44:59 -07:00
2025-12-10 22:15:35 -07:00
2025-12-10 22:15:35 -07:00
2025-12-10 22:15:35 -07:00
2025-12-10 22:15:35 -07:00
2025-11-28 19:45:44 -07:00
2025-11-28 19:45:44 -07:00