Как сделать API для приложения Python, которое находится в непрерывном цикле? - PullRequest
0 голосов
/ 02 марта 2019

У меня есть приложение на Python, которое вызывает рекурсивный метод, который выполняется вечно.Это цикл, который очищает веб-страницу и ищет номер, и, как только он его находит, он распечатывает сообщение, увеличивает номер и снова вызывает метод с увеличенным номером.Это продолжается вечно, потому что веб-страница обновляется примерно раз в неделю, и мой метод распечатывает сообщение, когда это обновление обнаруживается.

Я хочу создать мобильное приложение, которое уведомит пользователей, когда метод распечатывает сообщение (в идеале, в течение минуты или двух после изменения).Каков наилучший способ создать API, который позволил бы мне это сделать?Если есть другой способ, как я могу это сделать?

1 Ответ

0 голосов
/ 02 марта 2019

Использование рекурсивного метода для бесконечного цикла является большой ошибкой, потому что каждый раз, когда вы вызываете метод снова, последний метод помещается в стек, и если вы делаете это бесконечное время, в конечном итоге вы получаете ошибку переполнения стека.лучший способ для бесконечных заданий - это поток с простым «while True»:

import threading

SenderThread = threading.Thread(target=sender)
SenderThread.start()

def sender():
    while True:
        # do your job here

edit:

в соответствии с this :

Потоки Python используются в тех случаях, когда выполнение задачи требует некоторого ожидания.Одним из примеров может быть взаимодействие со службой, размещенной на другом компьютере, например веб-сервере.Потоки позволяют Python выполнять другой код во время ожидания;это легко смоделировать с помощью функции сна.

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

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