]> andersk Git - sql-web.git/blobdiff - cron/checkProcesses.php
only kill processes for UL < 10
[sql-web.git] / cron / checkProcesses.php
index e5c134ec951efceecd12525e43d06aea3f5ade3a..a98a86589dca97798ca4e8a30648dd40c4645f03 100755 (executable)
@@ -3,7 +3,9 @@
 @chdir(dirname(__FILE__).'/../');
 require_once('mitsql.cfg.php');
 require_once('mitsql.lib.php');
-define('MAX_PROC_TIME', 10);
+isOffline() && exit;
+
+define('MAX_PROC_TIME', 20);
 
 $baddbs = $badusers = $bad = array();
 $result = mysql_query('SHOW FULL PROCESSLIST');
@@ -21,18 +23,19 @@ foreach($bad as $badproc) {
        $baddb = mysql_escape_string($badproc['db']);
        $badtime = $badproc['Time'];
        $badquery = $badproc['Info'];
-       mysql_query('KILL '.$badproc['Id']);
        if (empty($baddb)) continue;
        $sql = "SELECT User.UserId,User.Name,User.Email
                        FROM `User`
                        NATURAL JOIN DBOwner
                        NATURAL JOIN DB
-                       WHERE DB.Name = '$baddb'";
+                       WHERE DB.Name = '$baddb'
+                         AND User.UL < 10";
        $r = fetchRows(DBSelect($sql),'UserId');
        foreach($r as $addy) {
                $mailtos[] = $addy['Email'];
                $mailnames[] = $addy['Name'];
        }
+       if (empty($mailtos)) continue;
        $mailto = implode(', ',$mailtos);
        $mailname = implode(', ',$mailnames);
        $mailsubj = "[sql] Slow Query on $baddb";
@@ -41,18 +44,18 @@ foreach($bad as $badproc) {
 A slow query was found on your database: $baddb
 It took $badtime seconds and has been aborted.
 
-We do not allow inefficient SQL queries to run this long to conserve server
-resources. Your query has been appended to this message for your records.
-Please optimize your queries to avoid having your query killed in the
-future. If you have any questions, please contact sql@mit.edu.
+We do not allow inefficient SQL queries to run this long. Your query has
+been appended to this message for your records. Please optimize your
+queries to avoid having your queries killed in the future. If you have any
+questions, please contact sql@mit.edu.
 
-The SQL Service is available at http://sql.mit.edu/
+This SQL Service is available at sql.mit.edu.
 
 ---------------------------------------------------------------------------
 
 $badquery";
 
-       $mailto = 'jwp@mit.edu';
+       mysql_query('KILL '.$badproc['Id']);
        mail($mailto,$mailsubj,$mailbody,"From: SQL Service <sql@mit.edu>\r\nBcc: sql@mit.edu\r\n");
 }
 
This page took 0.026661 seconds and 4 git commands to generate.