草庐IT

python - 使用 paramiko 防止 SFTP/SSH session 超时

我正在使用paramiko连接到SFTP服务器,我必须在该服务器上下载和处理一些文件。服务器将超时设置为5分钟,但有时文件的处理时间可能会超过超时时间。因此,当我想更改服务器上的工作目录以处理一些其他文件时sftp.chdir(target_dir))我收到连接超时的异常:Filebuildbdist.win32eggparamikosftp://ftp.py,line138,in_write_allraiseEOFError()为了解决这个问题,我认为激活保持事件是最好的选择,所以我在传输上使用“set_keepalive”将其设置为30秒:ssh=paramiko.SSHClien

python - 捕获套接字超时异常

我想捕获套接字超时(最好是在异常中)...excepturllib.error.URLError:可以捕获它,但我需要区分死链接和超时。...如果我取出excepturllib.error.URLError:套接字超时不会捕获并且脚本会因socket.timeout错误而终止importurllib.request,urllib.parse,urllib.errorimportsocketimporthttpsocket.setdefaulttimeout(0.1)try:file2=urllib.request.Request('http://uk.geforce.com/html:

python - 0.5秒后如何在python 2.4中发出警报信号

我想在运行0.5秒后让一段特定的Python代码超时。所以我打算在0.5秒后引发异常/信号,并优雅地处理它并继续其余代码。在python中,我知道signal.alarm()可以设置整数秒的警报。有没有其他方法可以让我们在0.5秒后发出警报。其他帖子中建议的signal.setitimer()在python2.4中不可用,我需要为此目的使用python2.4吗? 最佳答案 从耐心等待的“守护进程”线程发出警报。在下面的代码中,snoozealarm通过SnoozeAlarm线程执行您想要的操作:#!/usr/bin/envpytho

python - python 的 SSH 模块

我必须在一台远程机器上完成一项工作(使用我的网络服务器),大约需要10分钟。我用过pxsshpython中的模块相同,但它给了我“超时错误”(非阻塞)。现在,我正在使用paramiko但是一旦给出指令,它就会返回。我希望网络服务器等到作业完成。是否有任何pythonSSH模块可用于此。或者我们可以通过更改pxssh或paramiko的任何配置设置来实现相同的目标吗? 最佳答案 您可以使用recv_exit_statusChannel上等待命令完成的方法:recv_exit_status(self)>Returntheexitstat

Python Selenium WebDriver 如何为 get(url) 函数添加超时

我正在运行一段简单的代码,通过代理下载网站,但有时代理可能会很慢,这可能会导致WebDriver.get(url)请求无限期阻塞。WebDriver是否有一段简单的Python代码可以为此函数设置超时?通过搜索,我只找到了适用于Java的技术。driver.get(url) 最佳答案 对于所有的webcretents,我用来解决这个问题的是这个。Selenium使用socket库,所以我在socket模块上设置了一个超时,这会抛出一个错误,我们可以使用该错误将转义键发送到浏览器(这会停止页面加载):socket.setdefault

带线程的 Python 超时上下文管理器

我有timeout上下文管理器,它可以完美地处理信号,但它会在多线程模式下引发错误,因为信号仅在主线程中工作。deftimeout_handler(signum,frame):raiseTimeoutException()@contextmanagerdeftimeout(seconds):old_handler=signal.signal(signal.SIGALRM,timeout_handler)signal.alarm(seconds)try:yieldfinally:signal.alarm(0)signal.signal(signal.SIGALRM,old_handler

python - 具有超时、最大大小和连接池的 http 请求

我正在寻找一种在Python(2.7)中执行具有3个要求的HTTP请求的方法:超时(为了可靠性)内容最大大小(为了安全)连接池(为了性能)我检查了几乎所有的pythonHTTP库,但没有一个符合我的要求。例如:urllib2:很好,但没有池化importurllib2importjsonr=urllib2.urlopen('https://github.com/timeline.json',timeout=5)content=r.read(100+1)iflen(content)>100:print'toolarge'r.close()else:printjson.loads(cont

Python:编写接受参数的装饰器的快捷方式?

Python标准库是否有编写接受参数的装饰器的快捷方式?例如,如果我想写一个像with_timeout(timeout)这样的装饰器:@with_timeout(10.0)defcook_eggs(eggs):whilenoteggs.are_done():eggs.cook()我必须写这样的东西:defwith_timeout(timeout):_func=[None]defwith_timeout_helper(*args,**kwargs):withTimeout(timeout):return_func[0](*args,**kwargs)defwith_timeout_ret

python - 在 Django/python 中,如何将内存缓存设置为无限时间?

cache.set(key,value,9999999)但这不是无限时间... 最佳答案 def_get_memcache_timeout(self,timeout):"""Memcacheddealswithlong(>30days)timeoutsinaspecialway.Callthisfunctiontoobtainasafevalueforyourtimeout."""timeout=timeoutorself.default_timeoutiftimeout>2592000:#60*60*24*30,30days#Se

Python 超时脚本杀死线程事件超过 X 秒

我一直在到处寻找一个好的超时脚本,如果线程处于事件状态超过X秒,它可以终止线程,但我看到的所有示例都存在并不总是会停止线程的缺陷。使用thread.join(x)最终违背了它成为线程的目的。我找到的唯一像样的例子是Timeoutonafunctioncall而那个也不是没有缺陷..有人知道更好的方法吗? 最佳答案 请参阅我对python:howtosendpacketsinmultithreadandthenthethreadkillitself的回答-有一个带有InterruptableThread类的片段和在超时后杀死另一个线程