2016-06-01 01:04:31 -04:00
|
|
|
<?php
|
2016-06-06 00:29:03 -04:00
|
|
|
/**
|
|
|
|
* @brief This class contain functions for the database management
|
|
|
|
*
|
|
|
|
*/
|
2016-06-01 01:04:31 -04:00
|
|
|
class dbm {
|
2016-06-06 00:29:03 -04:00
|
|
|
/**
|
|
|
|
* @brief Return a list of database processes
|
|
|
|
*
|
|
|
|
* @return array
|
|
|
|
* 'list' => List of processes, separated in their different states
|
|
|
|
* 'amount' => Number of concurrent database processes
|
|
|
|
*/
|
2016-06-01 01:04:31 -04:00
|
|
|
public static function processlist() {
|
|
|
|
$r = q("SHOW PROCESSLIST");
|
|
|
|
$s = array();
|
|
|
|
|
2016-06-04 05:04:26 -04:00
|
|
|
$processes = 0;
|
2016-06-01 01:04:31 -04:00
|
|
|
$states = array();
|
|
|
|
foreach ($r AS $process) {
|
|
|
|
$state = trim($process["State"]);
|
2016-06-06 00:29:03 -04:00
|
|
|
|
2016-09-03 11:06:42 -04:00
|
|
|
// Filter out all non blocking processes
|
|
|
|
if (!in_array($state, array("", "init", "statistics", "updating"))) {
|
2016-06-01 01:04:31 -04:00
|
|
|
++$states[$state];
|
2016-06-04 05:04:26 -04:00
|
|
|
++$processes;
|
|
|
|
}
|
2016-06-01 01:04:31 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
$statelist = "";
|
|
|
|
foreach ($states AS $state => $usage) {
|
|
|
|
if ($statelist != "")
|
|
|
|
$statelist .= ", ";
|
|
|
|
$statelist .= $state.": ".$usage;
|
|
|
|
}
|
2016-06-03 17:10:23 -04:00
|
|
|
return(array("list" => $statelist, "amount" => $processes));
|
2016-06-01 01:04:31 -04:00
|
|
|
}
|
2016-07-02 08:00:42 -04:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Checks if $array is a filled array with at least one entry.
|
|
|
|
*
|
|
|
|
* @param $array mixed A filled array with at least one entry
|
|
|
|
* @return Whether $array is a filled array
|
|
|
|
*/
|
2016-07-25 05:46:14 -04:00
|
|
|
public static function is_result($array) {
|
2016-10-14 01:45:32 -04:00
|
|
|
// It could be a return value from an update statement
|
2016-10-22 06:14:41 -04:00
|
|
|
if (is_bool($array)) {
|
2016-10-14 01:45:32 -04:00
|
|
|
return $array;
|
2016-10-22 06:14:41 -04:00
|
|
|
}
|
2016-07-02 08:00:42 -04:00
|
|
|
return (is_array($array) && count($array) > 0);
|
|
|
|
}
|
2016-06-01 01:04:31 -04:00
|
|
|
}
|
|
|
|
?>
|