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
2 months 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
2 months 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
2 months 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
2 months 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
2 months 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
2 months 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
2 months 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
2 months ago
by drazisil-codecov
© 2026 CodSpeed Technology
Home Terms Privacy Docs