AlexDolls
@AlexDolls
Python/Django Developer

Как запустить фоновый процесс Django?

Как лучше всего запускать фоновые процессы в django?
Суть в том, что у меня есть пост на сайте, у него есть дата деактивации, мне нужно в режиме реального времени деактивировать его в тот момент, когда дата конца совпадет с текущей датой или уже будет "в прошлом". По поводу реализации фоновых процессов на python нашел только вот такой пример
import time
from threading import Thread

def timer(name):
    count = 0
    while True:
        time.sleep(60)
        count += 1            
        print("Hi " + name + "This program has now been running for " + str(count) + " minutes.")

print("Hello! Welcome to the program timer!")
name = raw_input("What is your name?")
print("Nice to meet you, " + name + "!")
background_thread = Thread(target=timer, args=(name,))
background_thread.start()

Но возник вопрос, касательно того, что у меня может быть неограниченное кол-во постов. Теоритически саму функцию можно было бы вызвать в фоне и она "пробегалась" бы по всем записям постов бд, брала бы дату деактивации, и сравнивала бы её с текущей, если текущая "больше", то убирала бы её. Либо с созданием каждого поста отдельно запускать процесс, но подозреваю что идея не очень...
Если кратко, есть ли на слуху решение более адекватное и правильное для моих целей (да и вообще с точки зрения фоновых процессов), чем то, что я описал выше?
  • Вопрос задан
  • 542 просмотра
Решения вопроса 1
dimonchik2013
@dimonchik2013
non progredi est regredi
Учу Python/Django и всё, что его сопровождает в веб разрабоке, например Django Rest Framework, Django Channels, PostgreSQL, Redis, Docker...

добавьте в этот набор Celery
но в Вашем случае достаточно и cron/systemd/supervisord
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы