Changeset 39921 in spip-zone


Ignore:
Timestamp:
Aug 18, 2010, 6:01:19 PM (9 years ago)
Author:
fil@…
Message:

un memcache qui marche

Location:
_plugins_/memoization
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/memoization/fonds/cfg_memoization.html

    r39909 r39921  
    3434                selected="(#ENV{methode}|=={memcache}|?{selected})"][
    3535                        disabled="(#VAL{memcache}|memoization_methode|non|?{disabled})"]
    36                         >Memcache (NON FONCTIONNEL)</option>
     36                        >Memcache</option>
    3737        <option value="filecache"[
    3838                selected="(#ENV{methode}|=={filecache}|?{selected})"][
     
    4747
    4848</fieldset>
     49
     50<fieldset id="memcache_options">
     51<legend>
     52        R&#233;glages de memcache
     53</legend>
     54
     55<ul>
     56<li>
     57<label for="memcache_host">Nom d&#8217;h&#244;te memcache&#160;:</label>
     58<input type="text" name="memcache_host" value="[(#ENV{memcache_host}|sinon{localhost})]" />
     59</li>
     60<li>
     61<label for="memcache_port">Port memcache&#160;:</label>
     62<input type="text" name="memcache_port" value="[(#ENV{memcache_port}|sinon{11211})]" />
     63</li>
     64</ul>
     65</fieldset>
     66<script type="text/javascript"><!--
     67        var methode_memcache = function() {
     68                if ($("#methode").val() == 'memcache')
     69                        $('#memcache_options').slideDown();
     70                else
     71                        $('#memcache_options').hide();
     72        };
     73        methode_memcache();
     74        $("#methode")
     75        .bind('change', methode_memcache);
     76
     77// -->
     78</script>
     79
     80
    4981
    5082<fieldset>
     
    6496</fieldset>
    6597
     98
    6699[(#REM) ------------------------ BOUTON OK ------------------------ ]
    67100<div>
  • _plugins_/memoization/inc/memoization.php

    r39909 r39921  
    66function memoization_methode ($methode=null) {
    77        if (!$methode) {
    8                 $methodes = array('xcache', 'eaccelerator', 'filecache', 'nocache');
     8                $methodes = array('xcache', 'eaccelerator', 'filecache');
    99                while (!memoization_methode($methode = array_shift($methodes))){};
    1010                return $methode;
  • _plugins_/memoization/memo/memcache.inc

    r39909 r39921  
    1717@define('_LOCK_MAX', 30); # max lock time (seconds)
    1818
    19 $GLOBALS['memcache'] = memcache_connect('localhost',11211);
     19$cfg = @unserialize($GLOBALS['meta']['memoization']);
     20if (!$cfg['memcache_host']) $cfg['memcache_host'] = 'localhost';
     21if (!$cfg['memcache_port']) $cfg['memcache_port'] = '11211';
     22
     23$GLOBALS['memcache'] = memcache_connect($cfg['memcache_host'],$cfg['memcache_port']);
    2024
    2125function cache_get($key) {
     
    3034function cache_set($key, $value, $ttl=null) {
    3135        // maybe_serialize
    32         if (is_object($value) OR is_array($value))
     36        if (is_object($value) OR is_array($value) OR is_null($value))
    3337                $value = array(serialize($value));
    3438        return is_null($ttl)
     
    4953        $a[0] = _CACHE_NAMESPACE.$key;
    5054        array_unshift($a, $GLOBALS['memcache']);
    51         return call_user_func_array('memcache_inc', $a);
     55
     56        // set if not exists
     57        $b = $a; $b[2] = 0; call_user_func_array('memcache_add', $b);
     58
     59        return call_user_func_array('memcache_increment', $a);
    5260}
    5361
     
    5664        $a[0] = _CACHE_NAMESPACE.$key;
    5765        array_unshift($a, $GLOBALS['memcache']);
    58         return call_user_func_array('memcache_dec', $a);
     66
     67        // set if not exists
     68        $b = $a; $b[2] = 0; call_user_func_array('memcache_add', $b);
     69
     70        return call_user_func_array('memcache_decrement', $a);
    5971}
    6072
  • _plugins_/memoization/public/cacher-memo.php

    r39907 r39921  
    141141
    142142
    143         // l'enregistrer, compresse ou non...
    144         $ok = cache_set($chemin_cache, $page);
     143        // memoizer...
     144        // on ajoute une heure histoire de pouvoir tourner
     145        // sur le cache quand la base de donnees est plantee (a tester)
     146        $ok = cache_set($chemin_cache, $page, 3600+$page['entetes']['X-Spip-Cache']);
    145147
    146148        spip_log("Creation du cache $chemin_cache "._MEMOIZE." pour "
Note: See TracChangeset for help on using the changeset viewer.