如何为处于连续循环中的python应用程序创建api?

如何为处于连续循环中的python应用程序创建api?,python,rest,web-scraping,server,Python,Rest,Web Scraping,Server,我有一个python应用程序,它调用一个永远运行的递归方法。它是一个循环,用于刮取网页并查找一个数字,一旦找到该数字,它将打印一条消息,增加该数字,然后使用增加的数字再次调用该方法。这种情况会一直持续下去,因为网页大约每周更新一次,而我的方法会在捕获到更新时打印出消息 我想制作一个移动应用程序,在方法打印出消息时通知用户(最好在更改后一两分钟内)。创建允许我这样做的api的最佳方法是什么?如果有其他方法,我怎么做 对无限循环使用递归方法是一个很大的错误,因为每次您再次调用该方法时,最后一个方法都

我有一个python应用程序,它调用一个永远运行的递归方法。它是一个循环,用于刮取网页并查找一个数字,一旦找到该数字,它将打印一条消息,增加该数字,然后使用增加的数字再次调用该方法。这种情况会一直持续下去,因为网页大约每周更新一次,而我的方法会在捕获到更新时打印出消息


我想制作一个移动应用程序,在方法打印出消息时通知用户(最好在更改后一两分钟内)。创建允许我这样做的api的最佳方法是什么?如果有其他方法,我怎么做

对无限循环使用递归方法是一个很大的错误,因为每次您再次调用该方法时,最后一个方法都会进入堆栈,如果您无限次调用,则最终会出现堆栈溢出错误。无限作业的最佳方式是使用简单的“while True”线程:

编辑:

根据:

Python线程用于任务执行涉及一些等待的情况。一个例子是与托管在另一台计算机上的服务(如Web服务器)的交互。线程允许python在等待时执行其他代码;这很容易用睡眠功能来模拟


我之所以使用线程,是因为主程序可以执行其任务,或者响应输入或任何您需要的东西。

Recursive?这听起来更像是无限循环行为。这样的应用程序似乎更适合计划任务,比如cron作业而不是循环。您将浪费大量的CPU周期来轮询每周只更改一次的内容。值更改后通知必须多久发出?您应该知道Python有递归限制,迭代方法通常比递归更好。@SteveBoyd我对Python非常陌生,我没有考虑过这一点。非常感谢你提供的信息。如果通知在更改后一两分钟内发出,这将是理想的。我将调查你提到的cron工作。我不知道。非常感谢你!谢谢你的回答。我知道线程的意义在于通过启动另一个任务来利用程序完成任务的时间。在我的例子中,您是否建议使用一个永远持续的线程来避免堆栈溢出问题?或者使用多个线程,从一个线程结束时开始?我这样问是因为我对这一点非常陌生,对如何处理这个问题感到困惑。
import threading

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

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