Django background longrunning tasks without celery
при написании django-backend мы отказались от использования Celery в пользу Process, потому что не смогли отменить уже запущенные задачи
но теперь нам нужно запланировать долгоиграющие задачи, которые должны выполняться каждые 5 минут или каждые 5 часов или каждые 3 часа (не обязательно, конечно, иметь возможность отменить их, но я РЕАЛЬНО не хочу использовать celery)
везде я видел, что периодические задачи из celery использовались для решения этой проблемы, я хочу узнать, какие есть альтернативы, важно, чтобы она была производительной и работала как на windows, так и на linux
сейчас мы используем такой код, нас все устраивает, кроме потенциально плохой производительности
# in tasks/management/commands/work
class Command(BaseCommand):
def handle(self, *args, **options):
while(True):
do_work() # work executed every 3 hours
time.sleep(60 * 60 * 3) # sleep 3 hours
# in tasks/management/commands/another_work
class Command(BaseCommand):
def handle(self, *args, **options):
while(True):
do_another_work() # work executed every 5 hours
time.sleep(60 * 60 * 5) # sleep 5 hours
насколько ужасно с точки зрения производительности несколько таких задач с while(True) + sleep?
интересно, какой код для решения этой проблемы лежит в основе celery