Maqola
Django'da rejalashtirilgan kontent: Celery Beat amaliyotda
Postlarni belgilangan vaqtda avtomatik e'lon qilish tizimini Celery Beat bilan qanday qurdim — arxitektura, kod va tuzoqlar.

Ko'p CMS'larda "keyinroq e'lon qilish" funksiyasi bor. Buni Django'da noldan qurish uchun uchta komponent kerak:
1. Status maydoni
status = models.CharField(choices=[draft, scheduled, published, archived]) publish_at = models.DateTimeField(null=True)
2. Beat vazifasi
Har 60 soniyada status=scheduled AND publish_at <= now
shartli postlarni topib, published qilamiz.
3. Idempotentlik
Eng muhim tuzoq: vazifa ikki marta ishga tushsa ham post ikki marta
tarqatilmasligi kerak. Buning uchun get_or_create va unique
constraint ishlatamiz.
To'liq kod GitHub'da — savollar bo'lsa, murojaat qiling!
- #Django
- #Nuxt 3