Перед вопросом я приведу некоторую историю для контекста.
В настоящее время я создаю небольшой веб-сайт на основе 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-вызов к веб-сайту, вызывая разведку