python写网站容易崩吗_Python崩溃的输出原因

我有一个应用程序,每隔几分钟轮询一堆服务器.为此,它为每个服务器生成一个线程进行轮询(15个服务器)并将数据写回到对象:

import requests

class ServerResults(object):

def __init__(self):

self.results = []

def add_server(some_argument):

self.results.append(some_argument)

servers = ['1.1.1.1','1.1.1.2']

results = ServerResults()

for s in servers:

t = CallThreads(poll_server,s,results)

t.daemon = True

t.start()

def poll_server(server,results):

response = requests.get(server,timeout=10)

results.add_server(response.status_code);

CallThreads类是一个调用函数的辅助函数(在本例中是带参数的poll_server()(在本例中是s和结果),你可以看到我的Github repo为Python utility functions的源代码.大多数时候这个工作正常,但是有时一个线程间歇性地挂起.我不知道为什么,因为我在GET请求上使用了超时.无论如何,如果线程挂起,则挂起的线程会在数小时或数天内累积,然后Python崩溃:

File "/usr/lib/python2.7/threading.py",line 495,in start

_start_new_thread(self.__bootstrap,())

thread.error: can't start new thread

Exception in thread Thread-575 (most likely raised during interpreter shutdown)

Exception in thread Thread-1671 (most likely raised during interpreter shutdown)

Exception in thread Thread-831 (most likely raised during interpreter shutdown)

我怎么处理这个?似乎没有办法到0781 a blocking thread in Python.这个应用程序需要在Raspberry Pi上运行,所以像twisted这样的大型库不适合,实际上我也需要摆脱requests库!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值