我有一个python应用程序,该应用程序调用永久运行的递归方法。这是一个抓取网页并查找数字的循环,找到该数字后,它会打印出一条消息,递增该数字,然后使用递增的数字再次调用该方法。这将永远持续下去,因为该网页大约每周更新一次,并且在捕获到该更新时,我的方法会打印出该消息。
我想制作一个移动应用程序,以在方法打印出一条消息时通知用户(最好在更改的一两分钟之内)。创建允许我执行此操作的api的最佳方法是什么?如果还有其他方法,我该怎么办?
答案 0 :(得分:1)
将递归方法用于无限循环是一个很大的错误,因为每次再次调用该方法时,最后一个方法都会进入堆栈,如果无限次执行,最终会出现堆栈溢出错误。无限作业的最佳方法是使用带有简单“ while True”的线程:
import threading
SenderThread = threading.Thread(target=sender)
SenderThread.start()
def sender():
while True:
# do your job here
编辑:
根据this:
Python线程用于任务执行涉及一些等待的情况。一个示例是与托管在另一台计算机(例如Web服务器)上的服务的交互。线程允许python在等待时执行其他代码;使用睡眠功能可以轻松模拟这一点。
我之所以使用线程,是因为主程序可以执行其工作或将其放置在输入或您需要的其他任何东西上。