Управление потоками на основе таймера - PullRequest
0 голосов
/ 13 апреля 2020

Перед вопросом я приведу некоторую историю для контекста.

В настоящее время я создаю небольшой веб-сайт на основе Django с некоторым кодом на обороте.

Это в основном это сайт проверки безопасности, поэтому модуль Recon является его частью. Пользователь заполняет форму, и начинается повтор.

Поскольку многие пользователи могут получить доступ к веб-сайту в одно и то же время, я обработал вызов метода recon с потоками, таким образом, более чем один пользователь может фактически использовать Веб-сайт. Что-то вроде следующего

def recon_view(request):
    if request.method == 'POST':
        form = ReconForm(request.POST)
        if form.is_valid():
            recon_thread = threading.Thread(name='Recon Process', target=recon.run_recon, args=(form,))
            recon_thread.start()

Следующий шаг - реализовать какой-то режим мониторинга, из того, что я искал, можно использовать потоки таким образом.

threading.Timer(1, foo).start()

recon будет запускаться один раз в неделю или несколько дней, поэтому время не является проблемой.

Это был бы правильный подход? Не означает, что каждый раз, когда пользователь запускает разведку, Thread будет продолжать работать в основном до тех пор, пока сервер не остановится (имеется в виду, возможно, сотни потоков одновременно).

Другой вариант, который я могу придумать использует отдельный скрипт, который выполняет API-вызов к веб-сайту, вызывая разведку

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...