[PYTHON] Es kann in 1 Minute erreicht werden! Ein Dekorator, der die Funktionsausführung zwischenspeichert, führt zu einem Memcached

Dies allein kann den Rückgabewert in memcached zwischenspeichern


@cached(time=1200)
def functionToCache(arguments):
  return arguments

Wann ist es bequem?

Besonders finde ich es praktisch, wenn ich mit Scraping oder externen Daten entwickle.

Wie benutzt man

  1. Führen Sie "pip install python-memcached" aus
  2. Speichern Sie die folgende Python-Datei an einem geeigneten Ort und importieren Sie die zwischengespeicherte Funktion.
  3. Dekorieren Sie beim Definieren einer Funktion in einem Format wie @cached (Zeit = 1000)

Snippet

memcached-decorater.py


def decorator_with_args(decorator_to_enhance):
  """ 
Eine Funktion, die einem Dekorateur ein Argument gibt und es zurückgibt
  """
  def decorator_maker(*args, **kwargs) :
    def decorator_wrapper(func) :
      return decorator_to_enhance(func, *args, **kwargs)
    return decorator_wrapper
  return decorator_maker

@decorator_with_args
def cached(func, *args, **kwargs):
  """
Decorator, der das Ergebnis unter Verwendung des Funktionsnamens und des Arguments als Schlüssel zwischenspeichert
Wie benutzt man
    @cached(time=1200)
    def functionToCache(arguments):
  """
  def wrapper(*pars):
    key = func.__name__ + '_' + '_'.join([str(par) for par in pars])
    print key
    client = memcache.Client(['127.0.0.1:11211'])
    val = client.get(key)
    if not val:
      val = func(*pars)
      try:
        client.set(key, val, time=kwargs['time'])
      except:
        pass #Bitte
    return val
  return wrapper


Referenz

gae-memcache-decorator.py https://gist.github.com/abahgat/1395810

Recommended Posts

Es kann in 1 Minute erreicht werden! Ein Dekorator, der die Funktionsausführung zwischenspeichert, führt zu einem Memcached
Maximale Anzahl von Funktionsparametern, die in jeder Sprache definiert werden können
Funktionen, die in der for-Anweisung verwendet werden können
Erstellen von Sphinx, das mit Markdown geschrieben werden kann
Morphologische Analyse und tfidf (mit Testcode), die in ca. 1 Minute durchgeführt werden können
Grundlegende Algorithmen, die bei Wettkampfprofis eingesetzt werden können
ANTs Bildregistrierung, die in 5 Minuten verwendet werden kann
Es scheint, dass Skeleton Tracking mit RealSense durchgeführt werden kann
Textanalyse, die in 5 Minuten durchgeführt werden kann [Word Cloud]
Goroutine, die im Feld verwendet werden kann (errgroup.Group Edition)
Skripte, die bei der Verwendung von Bottle in Python verwendet werden können
Bewertungsindex, der für GridSearchCV von sklearn angegeben werden kann
Ich habe es gemacht, weil ich JSON-Daten möchte, die in Demos und Prototypen frei verwendet werden können
Kann es in 1 Minute erledigt werden? Keine Installation erforderlich, Google Test-Beispiel für C-Sprache für Linux
・ <Slack> Schreiben Sie eine Funktion, um Slack zu benachrichtigen, damit sie jederzeit in Anführungszeichen gesetzt werden kann (Python).