mirror of
https://github.com/php-win-ext/php-memcached.git
synced 2026-03-24 00:52:18 +01:00
Merge pull request #45 from xoJIog/master
add connect timeout option to memcached.ini
This commit is contained in:
@@ -44,6 +44,11 @@ memcached.sess_binary = Off
|
||||
; memcached session replica read randomize
|
||||
memcached.sess_randomize_replica_read = Off
|
||||
|
||||
; memcached connect timeout value
|
||||
; In non-blocking mode this changes the value of the timeout
|
||||
; during socket connection in milliseconds. Specifying -1 means an infinite timeout.
|
||||
memcached.sess_connect_timeout = 1000
|
||||
|
||||
; Set the compression type
|
||||
; valid values are: fastlz, zlib
|
||||
; the default is fastlz
|
||||
|
||||
@@ -294,6 +294,7 @@ PHP_INI_BEGIN()
|
||||
STD_PHP_INI_ENTRY("memcached.sess_randomize_replica_read", "0", PHP_INI_ALL, OnUpdateBool, sess_randomize_replica_read, zend_php_memcached_globals, php_memcached_globals)
|
||||
STD_PHP_INI_ENTRY("memcached.sess_consistent_hashing", "0", PHP_INI_ALL, OnUpdateBool, sess_consistent_hashing_enabled, zend_php_memcached_globals, php_memcached_globals)
|
||||
STD_PHP_INI_ENTRY("memcached.sess_remove_failed", "0", PHP_INI_ALL, OnUpdateBool, sess_remove_failed_enabled, zend_php_memcached_globals, php_memcached_globals)
|
||||
STD_PHP_INI_ENTRY("memcached.sess_connect_timeout", "1000", PHP_INI_ALL, OnUpdateLong, sess_connect_timeout, zend_php_memcached_globals, php_memcached_globals)
|
||||
#endif
|
||||
STD_PHP_INI_ENTRY("memcached.compression_type", "fastlz", PHP_INI_ALL, OnUpdateCompressionType, compression_type, zend_php_memcached_globals, php_memcached_globals)
|
||||
STD_PHP_INI_ENTRY("memcached.compression_factor", "1.3", PHP_INI_ALL, OnUpdateReal, compression_factor, zend_php_memcached_globals, php_memcached_globals)
|
||||
@@ -3130,8 +3131,8 @@ static void php_memc_init_globals(zend_php_memcached_globals *php_memcached_glob
|
||||
MEMC_G(sess_locked) = 0;
|
||||
MEMC_G(sess_lock_key) = NULL;
|
||||
MEMC_G(sess_lock_key_len) = 0;
|
||||
MEMC_G(sess_number_of_replicas) = 0;
|
||||
MEMC_G(sess_randomize_replica_read) = 0;
|
||||
MEMC_G(sess_connect_timeout) = 1000;
|
||||
#endif
|
||||
MEMC_G(serializer_name) = NULL;
|
||||
MEMC_G(serializer) = SERIALIZER_DEFAULT;
|
||||
|
||||
@@ -71,6 +71,7 @@ ZEND_BEGIN_MODULE_GLOBALS(php_memcached)
|
||||
zend_bool sess_randomize_replica_read;
|
||||
zend_bool sess_remove_failed_enabled;
|
||||
zend_bool sess_consistent_hashing_enabled;
|
||||
long sess_connect_timeout;
|
||||
#endif
|
||||
char *serializer_name;
|
||||
enum memcached_serializer serializer;
|
||||
|
||||
@@ -234,6 +234,11 @@ success:
|
||||
return FAILURE;
|
||||
}
|
||||
}
|
||||
|
||||
if (memcached_behavior_set(memc_sess->memc_sess, MEMCACHED_BEHAVIOR_CONNECT_TIMEOUT, (uint64_t) MEMC_G(sess_connect_timeout)) == MEMCACHED_FAILURE) {
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "failed to set memcached connection timeout");
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
/* Allow libmemcached remove failed servers */
|
||||
if (MEMC_G(sess_remove_failed_enabled)) {
|
||||
|
||||
Reference in New Issue
Block a user