Article View: pl.comp.lang.python
Article #27085Re: Multiprocessing i timeout
From: Daniel Mróz
Date: Sat, 26 Dec 2009 17:17
Date: Sat, 26 Dec 2009 17:17
45 lines
2426 bytes
2426 bytes
On 23.12.2009, William Bonawentura <news@ipartners.pl> wrote:
>> Jak widać nie pomyśleli o tym, ale można użyć
>> http://docs.python.org/library/socket.html#socket.setdefaulttimeout
> Z zastrzeżeniem, że to jest zmiana globalna - na wszystkie wątki.
Dlatego najlepiej timeouty implementować na select.select lub select.*Poll,
np. (piszę z pamięci, więc może nie działać, ale ogólną zasadę Królewna
wyczai):
sock = socket.socket(<co tam potrzeba>)
sock.setblocking(0)
poller = select.poll()
poller.register(sock.fileno(), select.POLLOUT)
try:
sock.connect(<co tam potrzeba>)
except socket.error, e:
if e.args[0] not in (errno.EINPROGRESS, errno.EALREADY, errno.EWOULDBLOCK):
sock.close()
raise
else:
pass
except:
sock.close()
raise
events = poller.poll(<wybrany timeout>)
if not events:
sock.close()
raise JakiśTamWyjątek('Connect timeout')
sock.setblocking(1)
W Pythonie 3.0 już są AFAIR timeouty per obiekt gniazda, a nie
globalne, ale nie pamiętam czy obejmowały one przekroczenia czasu
połączenia, czy tylko timout transferu danych.
Pozdrawiam
Beorn
--
Daniel 'Beorn' Mróz <beorn@alpha.pl> http://127.0.0.1/beorn
[GIT d s:- a-@ C++++ UL++++$ P+ L++++ E--- W+ N+++ o? K- w---]
[O- M- V! PS+ PE++ Y+ PGP++ t- 5 X R !tv b+ DI D++ G++ e h*]
[ r++ y+ ]
Technical Details
Message-ID:
<slrnhjchh0.h9g.beorn@pino.cyberdeck.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!nf1.ipartners.pl!ipartners.pl!news.nask.pl!news.nask.org.pl!newsfeed.atman.pl!not-for-mailReferences:
<hgo2tn$d8r$2@achot.icm.edu.pl> <6257a74b-fcb0-4c64-843f-d13c1e5931e9@r5g2000yqb.googlegroups.com> <5e45a27a-4515-40c1-b098-f5f2724be64c@r24g2000yqd.googlegroups.com> <hgsfso$u0b$1@news2.ipartners.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!nf1.ipartners.pl!ipartners.pl!news.nask.pl!news.nask.org.pl!newsfeed.atman.pl!not-for-mail From: Daniel Mróz <beorn@alpha.pl> Newsgroups: pl.comp.lang.python Subject: Re: Multiprocessing i timeout Date: Sat, 26 Dec 2009 17:17:17 +0000 (UTC) Organization: A tak se walimy młotkami d:-/ Lines: 45 Message-ID: <slrnhjchh0.h9g.beorn@pino.cyberdeck.pl> References: <hgo2tn$d8r$2@achot.icm.edu.pl> <6257a74b-fcb0-4c64-843f-d13c1e5931e9@r5g2000yqb.googlegroups.com> <5e45a27a-4515-40c1-b098-f5f2724be64c@r24g2000yqd.googlegroups.com> <hgsfso$u0b$1@news2.ipartners.pl> NNTP-Posting-Host: fw2.itvp.pl Mime-Version: 1.0 X-Trace: node2.news.atman.pl 1261847837 20127 217.17.39.4 (26 Dec 2009 17:17:17 GMT) X-Complaints-To: usenet@atman.pl NNTP-Posting-Date: Sat, 26 Dec 2009 17:17:17 +0000 (UTC) User-Agent: slrn/0.9.8.1pl2.1 (Linux) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit