Simulating a web page timeout
Today dinner was a bit delayed because I got caught up dealing with an RSS feed that wasn't feeding. The website was down, and Python's urllib2, which I use in my "feedme" RSS fetcher, has an inordinately long timeout.
That certainly isn't the first time that's happened, but I'd like it to be the last. So I started to write code to set a shorter timeout, and realized: how does one test that? Of course, the offending site was working again by the time I finished eating dinner, went for a little walk then sat down to code.
I did a lot of web searching, hoping maybe someone had already set up a web service somewhere that times out for testing timeout code. No such luck. And discussions of how to set up such a site always seemed to center around installing elaborate heavyweight Java server-side packages. Surely there must be an easier way!
How about PHP? A web search for that wasn't helpful either. But I decided to try the simplest possible approach ... and it worked!
Just put something like this at the beginning of your HTML page (assuming, of course, your server has PHP enabled):
<?php sleep(500); ?>
Of course, you can adjust that 500 to be any delay you like.
Or you can even make the timeout adjustable, with a few more lines of code:
<?php if (isset($_GET['timeout'])) sleep($_GET['timeout']); else sleep(500); ?>
Then surf to yourpage.php?timeout=6 and watch the page load after six seconds.
Simple once I thought of it, but it's still surprising no one had written it up as a cookbook formula. It certainly is handy. Now I just need to get some Python timeout-handling code working.
[ 19:38 Oct 30, 2014 More tech/web | permalink to this entry | ]