【发布时间】:2020-05-31 08:05:57
【问题描述】:
我有一个 python 应用程序,它使用他们的到达 api 跟踪我所在城市的公共汽车以获取某些数据。我可以拨打的电话数量有限,而且我不想让它们超载,所以我目前每天运行 30 个线程来跟踪某些公交车站的数据。每个线程随机选择一个公共汽车站,并持续跟踪到达该站的公共汽车的数据。
我的想法是最终我希望在每个公交车站获得至少一天的数据,但我认为按公交车站的顺序可能会导致从同一个司机那里获取数据时出现问题。我的解决方案是,每次我启动一个线程时,我都会从完整的公交车站列表中随机选择一个公交车站,然后将其放入另一个我已经跟踪的公交车站列表中(它会一直随机选择,直到它得到一个没有'尚未被跟踪)。当列表与完整列表的长度相同时,它会被清除(意味着现在已经从每个站点跟踪了一天的数据)并且我们重复循环直到它再次变满,等等。
tldr 这是我想知道的部分:我想停止我当前正在运行的线程,并在每晚凌晨 2:00 获取新线程。如果我想实现这一点,最好在我的应用程序中编写一些执行此操作的内容,或者执行一项 cron 作业或在每晚凌晨 2:00 重新启动服务器上的应用程序?
下面是代码供参考:
if __name__ == "__main__":
numstops = 30
stops_to_track = make_stop_list(numstops)
for stop in stops_to_track:
_thread.start_new_thread(track_data, (stop,))
time.sleep(10)
while True:
pass
【问题讨论】:
标签: python multithreading server cron cloud