Exemple #1
0
 /**
  * @param ParserOutput $parserOutput
  * @param WikiPage $page
  * @param ParserOptions $popts
  * @param string $cacheTime Time when the cache was generated
  * @param int $revId Revision ID that was parsed
  */
 public function save($parserOutput, $page, $popts, $cacheTime = null, $revId = null)
 {
     $expire = $parserOutput->getCacheExpiry();
     if ($expire > 0) {
         $cacheTime = $cacheTime ?: wfTimestampNow();
         if (!$revId) {
             $revision = $page->getRevision();
             $revId = $revision ? $revision->getId() : null;
         }
         $optionsKey = new CacheTime();
         $optionsKey->mUsedOptions = $parserOutput->getUsedOptions();
         $optionsKey->updateCacheExpiry($expire);
         $optionsKey->setCacheTime($cacheTime);
         $parserOutput->setCacheTime($cacheTime);
         $optionsKey->setCacheRevisionId($revId);
         $parserOutput->setCacheRevisionId($revId);
         $parserOutputKey = $this->getParserOutputKey($page, $popts->optionsHash($optionsKey->mUsedOptions, $page->getTitle()));
         // Save the timestamp so that we don't have to load the revision row on view
         $parserOutput->setTimestamp($page->getTimestamp());
         $msg = "Saved in parser cache with key {$parserOutputKey}" . " and timestamp {$cacheTime}" . " and revision id {$revId}" . "\n";
         $parserOutput->mText .= "\n<!-- {$msg} -->\n";
         wfDebug($msg);
         // Save the parser output
         $this->mMemc->set($parserOutputKey, $parserOutput, $expire);
         // ...and its pointer
         $this->mMemc->set($this->getOptionsKey($page), $optionsKey, $expire);
         Hooks::run('ParserCacheSaveComplete', array($this, $parserOutput, $page->getTitle(), $popts, $revId));
     } else {
         wfDebug("Parser output was marked as uncacheable and has not been saved.\n");
     }
 }
Exemple #2
0
<?php

/**
 * memcached diagnostic tool
 *
 * @file
 * @todo document
 * @ingroup Maintenance
 */
/** */
require_once dirname(__FILE__) . '/commandLine.inc';
$mcc = new MWMemcached(array('persistant' => true));
$mcc->set_servers($wgMemCachedServers);
# $mcc->set_debug( true );
function mccShowHelp($command)
{
    $commandList = array('get' => 'grabs something', 'getsock' => 'lists sockets', 'set' => 'changes something', 'delete' => 'deletes something', 'history' => 'show command line history', 'server' => 'show current memcached server', 'dumpmcc' => 'shows the whole thing', 'exit' => 'exit mcc', 'quit' => 'exit mcc', 'help' => 'help about a command');
    if (!$command) {
        $command = 'fullhelp';
    }
    if ($command === 'fullhelp') {
        $max_cmd_len = max(array_map('strlen', array_keys($commandList)));
        foreach ($commandList as $cmd => $desc) {
            printf("%-{$max_cmd_len}s: %s\n", $cmd, $desc);
        }
    } elseif (isset($commandList[$command])) {
        print "{$command}: {$commandList[$command]}\n";
    } else {
        print "{$command}: command does not exist or no help for it\n";
    }
}
 public function add($key, $value, $exptime = 0)
 {
     return $this->client->add($this->validateKeyEncoding($key), $value, $this->fixExpiry($exptime));
 }