mirror of
https://github.com/Monadical-SAS/reflector.git
synced 2025-12-20 20:29:06 +00:00
2.6 KiB
2.6 KiB
TaskIQ Migration Implementation Plan
Phase 1: Core Infrastructure Setup
1.1 Create TaskIQ Broker Configuration
- Create
reflector/worker/taskiq_broker.pywith broker setup - Configure Redis broker with proper connection pooling
- Add retry middleware for 1:1 parity with Celery
- Setup test/production environment detection
1.2 Session Management Utilities
- Create
get_session_context()function inreflector/db.py - Ensure
@with_sessiondecorator works with TaskIQ - Verify test mocking works with new session approach
Phase 2: Simple Task Migration (Start Small)
2.1 Migrate Single Tasks First
reflector/worker/cleanup.py- 1 task, simple logicreflector/worker/webhook.py- 1 task with retry logic- Test each migrated task individually
2.2 Create Dual-Mode Tasks
- Keep Celery version with
@shared_task - Add TaskIQ version without
@asynctask - Use feature flag to switch between versions
Phase 3: Complex Pipeline Migration
3.1 File Processing Pipeline
- Migrate
task_pipeline_file_processcompletely - Handle all sub-tasks in the pipeline
- Migrate chain/group/chord patterns to TaskIQ
3.2 Live Processing Pipeline
- Migrate all 10 tasks in
main_live_pipeline.py - Convert complex chord patterns
- Ensure WebSocket notifications still work
Phase 4: Scheduled Tasks Migration
4.1 Convert Celery Beat to TaskIQ Scheduler
- Create
reflector/worker/scheduler.py - Migrate all scheduled tasks
- Setup TaskIQ scheduler service
Phase 5: Testing Infrastructure
5.1 Update Test Fixtures
- Create TaskIQ test fixtures in
conftest.py - Ensure dual-mode testing (both Celery and TaskIQ)
- Verify all existing tests pass
5.2 Migration-Specific Tests
- Test session management across tasks
- Test retry logic parity
- Test scheduled task execution
Phase 6: Deployment & Monitoring
6.1 Update Deployment Scripts
- Update Docker configurations
- Create TaskIQ worker startup scripts
- Setup health checks for TaskIQ
6.2 Monitoring Setup
- Create TaskIQ metrics collection
- Setup alerting for failed tasks
- Create migration rollback plan
Execution Order
- Week 1: Phase 1 + Phase 2.1
- Week 2: Phase 2.2 + Phase 3.1
- Week 3: Phase 3.2 + Phase 4
- Week 4: Phase 5
- Week 5: Phase 6 + Testing
- Week 6: Cutover + Monitoring
Success Metrics
- All tests passing with TaskIQ
- No performance degradation
- Successful parallel running for 1 week
- Zero data loss during migration
- Rollback tested and documented