2

いくつかのRESTAPIをいくつかのオブジェクトモデルにマップするライブラリがあります。そのため、APIの操作は簡単です。問題は、オブジェクトの属性を取得するたびに、ライブラリがサーバーに実際の要求を行うことです。これは、パフォーマンスの観点からは良くありません。

私が欲しいのは、属性の値をしばらくの間(たとえば5分)記憶する機能を追加し、データの有効期限が切れた場合にのみ実際の要求を行うことです。

問題は、ライブラリのコードを実際に変更せずに実行できるということですか?たとえば、デコレータなどを使用します。

4

1 に答える 1

1

「メモ化」と呼ばれる手法を使用したい。10代のGoogle検索で別のSOリンク が表示されます.メモ化とは何ですか? Pythonでそれを使用するにはどうすればよいですか?

factorial_memo = {}
def factorial(k):
    if k < 2: return 1
    if not k in factorial_memo:
        factorial_memo[k] = k * factorial(k-1)
    return factorial_memo[k]

ただし、ラインのメンバーシップを確認しません

if not k in factorial_memo:

そしてタイムアウトハンドラが必要です -

if (curr - prev) < fiveMin
    # access Memo
else
    # start thread to get new data

HTH

于 2012-12-15T14:22:45.420 に答える