aboutsummaryrefslogtreecommitdiff
path: root/IkiWiki.pm
diff options
context:
space:
mode:
authorJoey Hess <joey@kitenet.net>2012-10-09 17:03:52 -0400
committerJoey Hess <joey@kitenet.net>2012-10-09 17:12:04 -0400
commit6bd8c6732e7ccda0013a3373c3618fca91c91d36 (patch)
treee4677c50f7b3cf805cb352c39623af3bcb0cb3f5 /IkiWiki.pm
parent4c1582c11eb85bf356c943abf1b31dde3453e73d (diff)
downloadikiwiki-6bd8c6732e7ccda0013a3373c3618fca91c91d36.tar
ikiwiki-6bd8c6732e7ccda0013a3373c3618fca91c91d36.tar.gz
add cgi_overload_delay tunable
Try to avoid a situation in which so many ikiwiki cgi wrapper programs are running, all waiting on some long-running thing like a site rebuild, that it prevents the web server from doing anything else. The current approach only avoids this problem for GET requests; if multiple cgi's run GETs on a site at the same time, one will display a "please wait" page for a configurable number of seconds, which then redirects to retry. To enable this protection, set cgi_overload_delay to the number of seconds to wait. This is not enabled by default.
Diffstat (limited to 'IkiWiki.pm')
-rw-r--r--IkiWiki.pm8
1 files changed, 8 insertions, 0 deletions
diff --git a/IkiWiki.pm b/IkiWiki.pm
index f68797ae3..a7dc6b36b 100644
--- a/IkiWiki.pm
+++ b/IkiWiki.pm
@@ -118,6 +118,14 @@ sub getsetup () {
safe => 0,
rebuild => 0,
},
+ cgi_overload_delay => {
+ type => "string",
+ default => '',
+ example => "10",
+ description => "number of seconds to delay CGI requests when overloaded",
+ safe => 1,
+ rebuild => 0,
+ },
rcs => {
type => "string",
default => '',