擅长:python、mysql、java
<p>这是“最好”的方法吗?那要看情况了。老实说,您可以在一个线程中完成所有这些任务,尽管时间会因发出http请求所需的时间而略有不同。在</p>
<p>不过,我有几件事需要注意:</p>
<ul>
<li><p>您使用的是try/except,这很好,但是您没有明确接受任何特定的错误,这有点糟糕。您应该指定要接受哪些错误(例如无法访问服务器、无效的json内容等)。
请记住,您还可以排除任何未知错误,并对它们执行其他操作,例如:</p>
<p>尝试:
在这里做点什么()
除了MadeUpError as e:
print(“处理了错误。”)
除e类例外:
Print(“发生意外:{}”。format(e))</p></li>
<li><p>您正在使用守护程序线程。守护进程线程允许程序在不首先停止它们的情况下退出。这意味着如果主线程退出,整个程序也应该退出。我不认为这是你想要的,因为你的程序运行超过一秒钟,然后退出,我假设你在主线程中做了些什么。您的数据检索工作者是守护程序有什么特殊的原因吗?</p></li>
<li>你没有一个简单的方法来停止这个程序。您可以使用一个线程。事件. 这是一个标志,主线程可以在它希望所有工作线程退出时设置。主线程可以运行try/except键盘中断,在except处理程序中,可以.set()该事件,告诉工作线程在完成当前正在执行的操作后退出。在</li>
<li>如果您发现自己需要更复杂的调度(可能一个工作线程需要每30秒执行一次,另一个需要每5分钟执行一次,另一个需要每天12:30执行一次),那么您可以考虑使用诸如<a href="https://apscheduler.readthedocs.io/" rel="nofollow noreferrer">APScheduler</a>这样的库,它是专门为在特定时间间隔运行函数而设计的,并且支持不同的调度程序(尽管您可能需要backgroundScheduler,它使用线程)。在</li>
<li>你没有在我能看到的屏幕上使用任何记录或打印。对于那些将要运行很长一段时间并且可能会遇到您以后想知道的错误的东西,通常最好记录下来。Python有一个很好的日志模块,这个模块附带了一个标准库,它还有一个关于如何使用它的教程。你可以发送日志消息到终端,一个文件,通过电子邮件等。有不同的日志级别,所以你可以设置你的程序,例如,只打印警告和以上的终端,而调试和信息消息不会打印。在</li>
</ul>
<p>希望这有帮助。在</p>