# HG changeset patch # User paulo@thepaulopc # Date 1307251226 25200 # Node ID f93693980ead2747c6b72c3ab7badef1fde45d10 # Parent 56bb0cbf53859d23545651c794b946f9261cd9f2 myrss: limit number of forked processes; tweak indexing; print both stdout and stderr from shell script to php page diff -r 56bb0cbf5385 -r f93693980ead myrss/index.php --- a/myrss/index.php Sat Jun 04 22:17:24 2011 -0700 +++ b/myrss/index.php Sat Jun 04 22:20:26 2011 -0700 @@ -11,7 +11,7 @@ $newbody = ''; if ((time() - $cache_mtime >= $cache_life)) { - $newbody = shell_exec('./myrss_update.sh'); + $newbody = shell_exec('./myrss_update.sh 2>&1'); file_put_contents($cache_fn, $newbody); } else { $newbody = file_get_contents($cache_fn); diff -r 56bb0cbf5385 -r f93693980ead myrss/myrss_update.sh --- a/myrss/myrss_update.sh Sat Jun 04 22:17:24 2011 -0700 +++ b/myrss/myrss_update.sh Sat Jun 04 22:20:26 2011 -0700 @@ -2,12 +2,19 @@ TIMESTAMP=$(date '+%FT%T%:z') TIMEOUT=60 +MAXPROCS=20 i=0 +n=0 for URL in $(grep -v '^#' FEEDS) do - FN=$((i++)).feedtmp - wget -q -T ${TIMEOUT} -U '' -O - ${URL} | xsltproc step1.xsl - | xsltproc step2.xsl - > ${FN} & + FN=$((++i)).feedtmp + wget -q -T ${TIMEOUT} -U '' -O - ${URL} | xsltproc step1.xsl - | xsltproc step2.xsl - > ${FN} & + if (( $((++n)) > ${MAXPROCS} )) + then + wait + n=0 + fi done wait @@ -21,7 +28,7 @@ echo '' echo "

${TIMESTAMP}

" -for j in $(seq 0 ${i}) +for j in $(seq 1 ${i}) do cat ${j}.feedtmp done