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

Вернуться на верх