Moved setCache method into StatsCacheClass
* Allow calling method via memcache wrapping call * Make it available to all classes using StatsCache
This commit is contained in:
parent
75bee6ed60
commit
376bae1e2d
@ -43,19 +43,6 @@ class Statistics {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Another wrapper, we want to store data in memcache and return the actual data
|
|
||||||
* for further processing
|
|
||||||
* @param key string Our memcache key
|
|
||||||
* @param data mixed Our data to store in Memcache
|
|
||||||
* @param expiration time Our expiration time, see Memcached documentation
|
|
||||||
* @return data mixed Return our stored data unchanged
|
|
||||||
**/
|
|
||||||
public function setCache($key, $data, $expiration=NULL) {
|
|
||||||
if ($this->config['memcache']['enabled']) $this->memcache->set($key, $data, $expiration);
|
|
||||||
return $data;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get our last $limit blocks found
|
* Get our last $limit blocks found
|
||||||
* @param limit int Last limit blocks
|
* @param limit int Last limit blocks
|
||||||
@ -71,7 +58,7 @@ class Statistics {
|
|||||||
ON b.account_id = a.id
|
ON b.account_id = a.id
|
||||||
ORDER BY height DESC LIMIT ?");
|
ORDER BY height DESC LIMIT ?");
|
||||||
if ($this->checkStmt($stmt) && $stmt->bind_param("i", $limit) && $stmt->execute() && $result = $stmt->get_result())
|
if ($this->checkStmt($stmt) && $stmt->bind_param("i", $limit) && $stmt->execute() && $result = $stmt->get_result())
|
||||||
return $this->setCache(__FUNCTION__ . $limit, $result->fetch_all(MYSQLI_ASSOC), 5);
|
return $this->memcache->setCache(__FUNCTION__ . $limit, $result->fetch_all(MYSQLI_ASSOC), 5);
|
||||||
// Catchall
|
// Catchall
|
||||||
$this->debug->append("Failed to find blocks:" . $this->mysqli->error);
|
$this->debug->append("Failed to find blocks:" . $this->mysqli->error);
|
||||||
return false;
|
return false;
|
||||||
@ -110,7 +97,7 @@ class Statistics {
|
|||||||
SELECT ROUND(COUNT(id) * POW(2, " . $this->config['difficulty'] . ")/600/1000) AS hashrate FROM " . $this->share->getArchiveTableName() . " WHERE time > DATE_SUB(now(), INTERVAL 10 MINUTE)
|
SELECT ROUND(COUNT(id) * POW(2, " . $this->config['difficulty'] . ")/600/1000) AS hashrate FROM " . $this->share->getArchiveTableName() . " WHERE time > DATE_SUB(now(), INTERVAL 10 MINUTE)
|
||||||
) AS sum");
|
) AS sum");
|
||||||
// Catchall
|
// Catchall
|
||||||
if ($this->checkStmt($stmt) && $stmt->execute() && $result = $stmt->get_result() ) return $this->setCache(__FUNCTION__, $result->fetch_object()->hashrate);
|
if ($this->checkStmt($stmt) && $stmt->execute() && $result = $stmt->get_result() ) return $this->memcache->setCache(__FUNCTION__, $result->fetch_object()->hashrate);
|
||||||
$this->debug->append("Failed to get hashrate: " . $this->mysqli->error);
|
$this->debug->append("Failed to get hashrate: " . $this->mysqli->error);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -130,7 +117,7 @@ class Statistics {
|
|||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT COUNT(id) AS sharerate FROM " . $this->share->getArchiveTableName() . " WHERE time > DATE_SUB(now(), INTERVAL 10 MINUTE)
|
SELECT COUNT(id) AS sharerate FROM " . $this->share->getArchiveTableName() . " WHERE time > DATE_SUB(now(), INTERVAL 10 MINUTE)
|
||||||
) AS sum");
|
) AS sum");
|
||||||
if ($this->checkStmt($stmt) && $stmt->execute() && $result = $stmt->get_result() ) return $this->setCache(__FUNCTION__, $result->fetch_object()->sharerate);
|
if ($this->checkStmt($stmt) && $stmt->execute() && $result = $stmt->get_result() ) return $this->memcache->setCache(__FUNCTION__, $result->fetch_object()->sharerate);
|
||||||
// Catchall
|
// Catchall
|
||||||
$this->debug->append("Failed to fetch share rate: " . $this->mysqli->error);
|
$this->debug->append("Failed to fetch share rate: " . $this->mysqli->error);
|
||||||
return false;
|
return false;
|
||||||
@ -155,7 +142,7 @@ class Statistics {
|
|||||||
WHERE UNIX_TIMESTAMP(time) >IFNULL((SELECT MAX(time) FROM blocks),0)
|
WHERE UNIX_TIMESTAMP(time) >IFNULL((SELECT MAX(time) FROM blocks),0)
|
||||||
AND our_result = 'N' ) as invalid");
|
AND our_result = 'N' ) as invalid");
|
||||||
if ( $this->checkStmt($stmt) && $stmt->execute() && $result = $stmt->get_result() )
|
if ( $this->checkStmt($stmt) && $stmt->execute() && $result = $stmt->get_result() )
|
||||||
return $this->setCache(__FUNCTION__, $result->fetch_assoc());
|
return $this->memcache->setCache(__FUNCTION__, $result->fetch_assoc());
|
||||||
// Catchall
|
// Catchall
|
||||||
$this->debug->append("Failed to fetch round shares: " . $this->mysqli->error);
|
$this->debug->append("Failed to fetch round shares: " . $this->mysqli->error);
|
||||||
return false;
|
return false;
|
||||||
@ -190,7 +177,7 @@ class Statistics {
|
|||||||
AND u.id = ?
|
AND u.id = ?
|
||||||
) AS invalid");
|
) AS invalid");
|
||||||
if ($stmt && $stmt->bind_param("ii", $account_id, $account_id) && $stmt->execute() && $result = $stmt->get_result())
|
if ($stmt && $stmt->bind_param("ii", $account_id, $account_id) && $stmt->execute() && $result = $stmt->get_result())
|
||||||
return $this->setCache(__FUNCTION__ . $account_id, $result->fetch_assoc());
|
return $this->memcache->setCache(__FUNCTION__ . $account_id, $result->fetch_assoc());
|
||||||
// Catchall
|
// Catchall
|
||||||
$this->debug->append("Unable to fetch user round shares: " . $this->mysqli->error);
|
$this->debug->append("Unable to fetch user round shares: " . $this->mysqli->error);
|
||||||
return false;
|
return false;
|
||||||
@ -211,7 +198,7 @@ class Statistics {
|
|||||||
AND s.time > DATE_SUB(now(), INTERVAL 10 MINUTE)
|
AND s.time > DATE_SUB(now(), INTERVAL 10 MINUTE)
|
||||||
AND u.id = ?");
|
AND u.id = ?");
|
||||||
if ($this->checkStmt($stmt) && $stmt->bind_param("i", $account_id) && $stmt->execute() && $result = $stmt->get_result() )
|
if ($this->checkStmt($stmt) && $stmt->bind_param("i", $account_id) && $stmt->execute() && $result = $stmt->get_result() )
|
||||||
return $this->setCache(__FUNCTION__ . $account_id, $result->fetch_object()->hashrate);
|
return $this->memcache->setCache(__FUNCTION__ . $account_id, $result->fetch_object()->hashrate);
|
||||||
// Catchall
|
// Catchall
|
||||||
$this->debug->append("Failed to fetch hashrate: " . $this->mysqli->error);
|
$this->debug->append("Failed to fetch hashrate: " . $this->mysqli->error);
|
||||||
return false;
|
return false;
|
||||||
@ -233,7 +220,7 @@ class Statistics {
|
|||||||
AND s.time > DATE_SUB(now(), INTERVAL 10 MINUTE)
|
AND s.time > DATE_SUB(now(), INTERVAL 10 MINUTE)
|
||||||
AND u.id = ?");
|
AND u.id = ?");
|
||||||
if ($this->checkStmt($stmt) && $stmt->bind_param("i", $account_id) && $stmt->execute() && $result = $stmt->get_result() )
|
if ($this->checkStmt($stmt) && $stmt->bind_param("i", $account_id) && $stmt->execute() && $result = $stmt->get_result() )
|
||||||
return $this->setCache(__FUNCTION__ . $worker_id, $result->fetch_object()->hashrate);
|
return $this->memcache->setCache(__FUNCTION__ . $worker_id, $result->fetch_object()->hashrate);
|
||||||
// Catchall
|
// Catchall
|
||||||
$this->debug->append("Failed to fetch hashrate: " . $this->mysqli->error);
|
$this->debug->append("Failed to fetch hashrate: " . $this->mysqli->error);
|
||||||
return false;
|
return false;
|
||||||
@ -259,7 +246,7 @@ class Statistics {
|
|||||||
ORDER BY shares DESC
|
ORDER BY shares DESC
|
||||||
LIMIT ?");
|
LIMIT ?");
|
||||||
if ($this->checkStmt($stmt) && $stmt->bind_param("i", $limit) && $stmt->execute() && $result = $stmt->get_result())
|
if ($this->checkStmt($stmt) && $stmt->bind_param("i", $limit) && $stmt->execute() && $result = $stmt->get_result())
|
||||||
return $this->setCache(__FUNCTION__ . $type . $limit, $result->fetch_all(MYSQLI_ASSOC));
|
return $this->memcache->setCache(__FUNCTION__ . $type . $limit, $result->fetch_all(MYSQLI_ASSOC));
|
||||||
$this->debug->append("Fetching shares failed: ");
|
$this->debug->append("Fetching shares failed: ");
|
||||||
return false;
|
return false;
|
||||||
break;
|
break;
|
||||||
@ -274,7 +261,7 @@ class Statistics {
|
|||||||
GROUP BY account
|
GROUP BY account
|
||||||
ORDER BY hashrate DESC LIMIT ?");
|
ORDER BY hashrate DESC LIMIT ?");
|
||||||
if ($this->checkStmt($stmt) && $stmt->bind_param("i", $limit) && $stmt->execute() && $result = $stmt->get_result())
|
if ($this->checkStmt($stmt) && $stmt->bind_param("i", $limit) && $stmt->execute() && $result = $stmt->get_result())
|
||||||
return $this->setCache(__FUNCTION__ . $type . $limit, $result->fetch_all(MYSQLI_ASSOC));
|
return $this->memcache->setCache(__FUNCTION__ . $type . $limit, $result->fetch_all(MYSQLI_ASSOC));
|
||||||
$this->debug->append("Fetching shares failed: ");
|
$this->debug->append("Fetching shares failed: ");
|
||||||
return false;
|
return false;
|
||||||
break;
|
break;
|
||||||
@ -309,7 +296,7 @@ class Statistics {
|
|||||||
AND a.id = ?
|
AND a.id = ?
|
||||||
GROUP BY HOUR(time)");
|
GROUP BY HOUR(time)");
|
||||||
if ($this->checkStmt($stmt) && $stmt->bind_param("ii", $account_id, $account_id) && $stmt->execute() && $result = $stmt->get_result())
|
if ($this->checkStmt($stmt) && $stmt->bind_param("ii", $account_id, $account_id) && $stmt->execute() && $result = $stmt->get_result())
|
||||||
return $this->setCache(__FUNCTION__ . $account_id, $result->fetch_all(MYSQLI_ASSOC), 3600);
|
return $this->memcache->setCache(__FUNCTION__ . $account_id, $result->fetch_all(MYSQLI_ASSOC), 3600);
|
||||||
// Catchall
|
// Catchall
|
||||||
$this->debug->append("Failed to fetch hourly hashrate: " . $this->mysqli->error);
|
$this->debug->append("Failed to fetch hourly hashrate: " . $this->mysqli->error);
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@ -43,6 +43,19 @@ class StatsCache extends Memcached {
|
|||||||
$this->debug->append("Key not found", 3);
|
$this->debug->append("Key not found", 3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Another wrapper, we want to store data in memcache and return the actual data
|
||||||
|
* for further processing
|
||||||
|
* @param key string Our memcache key
|
||||||
|
* @param data mixed Our data to store in Memcache
|
||||||
|
* @param expiration time Our expiration time, see Memcached documentation
|
||||||
|
* @return data mixed Return our stored data unchanged
|
||||||
|
**/
|
||||||
|
public function setCache($key, $data, $expiration=NULL) {
|
||||||
|
if ($this->config['memcache']['enabled']) $this->set($key, $data, $expiration);
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$memcache = new StatsCache($config, $debug);
|
$memcache = new StatsCache($config, $debug);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user