зеркало из https://github.com/mozilla/bugbug.git
Cache models in the HTTP service workers only if they are used more than once in two hours
Part of #1342
This commit is contained in:
Родитель
4695acfad9
Коммит
ececf8a58a
|
@ -6,10 +6,12 @@
|
|||
import json
|
||||
import logging
|
||||
import os
|
||||
from datetime import datetime
|
||||
from typing import Dict
|
||||
from urllib.request import urlretrieve
|
||||
|
||||
import requests
|
||||
from dateutil.relativedelta import relativedelta
|
||||
from redis import Redis
|
||||
|
||||
from bugbug import bugzilla, get_bugbug_version
|
||||
|
@ -34,6 +36,7 @@ BASE_URL = "https://community-tc.services.mozilla.com/api/index/v1/task/project.
|
|||
DEFAULT_EXPIRATION_TTL = 7 * 24 * 3600 # A week
|
||||
|
||||
|
||||
MODEL_LAST_LOADED: Dict[str, datetime] = {}
|
||||
MODEL_CACHE: Dict[str, Model] = {}
|
||||
|
||||
|
||||
|
@ -60,10 +63,16 @@ def get_model(model_name):
|
|||
else:
|
||||
raise
|
||||
|
||||
MODEL_CACHE[model_name] = model
|
||||
return model
|
||||
# Cache the model only if it was last used less than two hours ago.
|
||||
if model_name in MODEL_LAST_LOADED and MODEL_LAST_LOADED[
|
||||
model_name
|
||||
] > datetime.now() - relativedelta(hours=2):
|
||||
MODEL_CACHE[model_name] = model
|
||||
else:
|
||||
model = MODEL_CACHE[model_name]
|
||||
|
||||
return MODEL_CACHE[model_name]
|
||||
MODEL_LAST_LOADED[model_name] = datetime.now()
|
||||
return model
|
||||
|
||||
|
||||
def preload_models():
|
||||
|
|
Загрузка…
Ссылка в новой задаче