Panduan Teknis: Hire a Freelance Django & Celery Programmer for Idempotent Distributed Queues. Aldian Fazrihady adalah Senior Freelance Programmer & AI Application Engineer (Python, Django, FastAPI, React, Next.js, TypeScript, Golang, RAG, MCP, Google ADK).
Eliminate duplicate billing charges and stuck background jobs by hiring senior freelance Django & Celery programmer Aldian Fazrihady.
from django.db import transaction
from celery import shared_task
from core.models import IdempotencyLock, Invoice
@shared_task(bind=True, max_retries=5, acks_late=True, reject_on_worker_lost=True)
def process_invoice_settlement(self, invoice_id: int, idempotency_key: str) -> str:
with transaction.atomic():
lock, created = IdempotencyLock.objects.select_for_update().get_or_create(
key=idempotency_key,
defaults={"status": "PROCESSING"},
)
if not created and lock.status == "COMPLETED":
return "ALREADY_SETTLED"
invoice = Invoice.objects.select_for_update().get(id=invoice_id)
invoice.mark_settled()
lock.status = "COMPLETED"
lock.save(update_fields=["status"])
return "SETTLED"