Commit 8beadc91 by Carsten Brandt

cleanup MemCache timeout API after #804

use milliseconds only and fall back to seconds for older memcache versions.
parent 5311dac9
......@@ -93,8 +93,13 @@ class MemCache extends Cache
if ($this->useMemcached) {
$cache->addServer($server->host, $server->port, $server->weight);
} else {
$cache->addServer($server->host, $server->port, $server->persistent,
$server->weight, $server->timeout, $server->retryInterval, $server->status, $server->failureCallback, $server->timemoutms);
// $timeout is used for memcache versions that do not have timeoutms parameter
$timeout = (int) ($server->timeout / 1000) + (($server->timeout % 1000 > 0) ? 1 : 0);
$cache->addServer(
$server->host, $server->port, $server->persistent,
$server->weight, $timeout, $server->retryInterval,
$server->status, $server->failureCallback, $server->timeout
);
}
}
} else {
......
......@@ -35,9 +35,11 @@ class MemCacheServer extends \yii\base\Object
*/
public $persistent = true;
/**
* @var integer value in seconds which will be used for connecting to the server. This is used by memcache only.
* @var integer timeout in milliseconds which will be used for connecting to the server.
* This is used by memcache only. For old versions of memcache that only support specifying
* timeout in seconds this will be rounded up to full seconds.
*/
public $timeout = 1;
public $timeout = 1000;
/**
* @var integer how often a failed server will be retried (in seconds). This is used by memcache only.
*/
......@@ -47,14 +49,10 @@ class MemCacheServer extends \yii\base\Object
*/
public $status = true;
/**
* @var \Closure allows the user to specify a callback function to run upon encountering an error.
* The callback is run before failover is attempted. The function takes two parameters,
* @var \Closure this callback function will run upon encountering an error.
* The callback is run before fail over is attempted. The function takes two parameters,
* the [[host]] and the [[port]] of the failed server.
* This is used by memcache only.
*/
public $failureCallback = null;
/**
* @var integer value in milliseconds which will be used for connecting to the server.
* Takes precedence over [[timeout]]. This is used by memcache only.
*/
public $timemoutms = 1000;
public $failureCallback;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment