codecov
umbrella
BlogDocsChangelog

CCMRG-1864 Add Dead Letter Queue (DLQ) for Failed Tasks

#561
Comparing
feat/add-dead-letter-queue
(
e07cb3b
) with
main
(
5341c2f
)
CodSpeed Performance Gauge
0%
Untouched
9

Benchmarks

Passed

test_report_carryforward
libs/shared/tests/benchmarks/test_report.py
CodSpeed Performance Gauge
+1%
5.4 ms5.4 ms
test_report_diff_calculation[FilteredReport]
libs/shared/tests/benchmarks/test_report.py
CodSpeed Performance Gauge
0%
2.9 ms2.9 ms
test_report_diff_calculation[Report]
libs/shared/tests/benchmarks/test_report.py
CodSpeed Performance Gauge
0%
1.9 ms1.9 ms
test_report_filtering
libs/shared/tests/benchmarks/test_report.py
CodSpeed Performance Gauge
0%
2.3 s2.3 s
test_report_merge
libs/shared/tests/benchmarks/test_report.py
CodSpeed Performance Gauge
0%
2.8 s2.8 s
test_process_totals
libs/shared/tests/benchmarks/test_report.py
CodSpeed Performance Gauge
0%
592.7 ms592.5 ms
test_report_serialize
libs/shared/tests/benchmarks/test_report.py
CodSpeed Performance Gauge
0%
5.7 ms5.7 ms
test_parse_shallow
libs/shared/tests/benchmarks/test_report.py
CodSpeed Performance Gauge
0%
9.5 ms9.5 ms
test_parse_full
libs/shared/tests/benchmarks/test_report.py
CodSpeed Performance Gauge
0%
487.6 ms488.2 ms

Commits

Click on a commit to change the comparison range
Base
main
5341c2f
-0.02%
Format DLQ files with ruff
4fc2b93
23 days ago
by drazisil-codecov
+0.4%
Replace DLQ management command with Django admin interface - Add Django admin views for DLQ management (list, recover, delete) - Create admin template for DLQ list view - Remove management command in favor of web interface - Accessible at /admin/dlq/ in Django admin
375f18d
23 days ago
by drazisil-codecov
-0.41%
Fix DLQ admin URL handling and test failures - Move re_path import to top level to fix ruff linting error - Use re_path instead of path to handle slashes in DLQ keys - Fix tests to use unencoded keys (Django handles encoding automatically) - Remove manual URL decoding (Django handles it automatically)
7315ea5
23 days ago
by drazisil-codecov
+0.09%
Add Dead Letter Queue (DLQ) support for upload processing chain - Add DLQ configuration (TTL, key prefix) in celery_config - Implement generic DLQ save method in BaseCodecovTask with recursive UserYaml serialization - Create DLQRecoveryTask for listing, recovering, and deleting DLQ entries - Add Django admin interface for DLQ management - Integrate DLQ into UploadTask, UploadProcessorTask, and UploadFinisherTask - Add comprehensive test coverage for DLQ functionality - Fix UserYaml serialization issue in DLQ save by recursively converting to dicts
40d8774
22 days ago
by drazisil-codecov
-0.01%
Ensure DLQ recovery restores upload arguments to Redis - Add get_all_arguments() method to UploadContext to read arguments without consuming - Save upload_arguments to DLQ when UploadTask fails - Restore upload arguments to Redis in DLQ recovery before re-queuing - Add lrange() method to FakeRedis for test support - Fix serialization to ensure all dict keys are strings (orjson requirement) - Add test for upload argument restoration in DLQ recovery This ensures recovered tasks behave exactly like normal retries and correctly schedule downstream tasks in the upload processing chain.
6c41200
22 days ago
by drazisil-codecov
-0.01%
Refactor imports in base.py and test_upload_task.py for clarity - Moved import statements to the top of base.py for better organization. - Removed redundant imports in test_upload_task.py to streamline the code. - Ensured consistent import structure across both files for improved readability.
c247bfa
22 days ago
by drazisil-codecov
-0.06%
Add comprehensive test coverage for DLQ functionality - Add tests for UploadTask recovery edge cases (empty arguments, restore failures, missing repoid/commitid) - Add tests for different report types (test_results, bundle_analysis) in recovery - Add tests for UploadContext.get_all_arguments() method - Add tests for admin interface URL encoding edge cases - Fix test to use ReportType enum instead of string
9a3b255
22 days ago
by drazisil-codecov
+0.14%
Refactor DLQ admin to use Django admin patterns - Use render() from django.shortcuts instead of TemplateResponse - Move HTML generation to template instead of Python - Follow same pattern as timeseries admin implementation - Fix import formatting to match codebase style
e07cb3b
22 days ago
by drazisil-codecov
© 2025 CodSpeed Technology
Home Terms Privacy Docs