Added result caching to pyMetadata + Update to G.A
This commit is contained in:
parent
c2ac823e25
commit
36dda6d04e
10
.github/workflows/main.yml
vendored
10
.github/workflows/main.yml
vendored
@ -17,7 +17,17 @@ jobs:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Check if code has changed
|
||||
id: check-commoncode
|
||||
run: |
|
||||
if [[ $(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} CommonCode/) ]]; then
|
||||
echo "::set-output name=skip::false"
|
||||
else
|
||||
echo "::set-output name=skip::true"
|
||||
fi
|
||||
|
||||
- name: Cache CommonCode Gradle dependencies
|
||||
if: steps.check-commoncode.outputs.skip == 'false'
|
||||
id: cache-gradle
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
|
||||
@ -11,6 +11,7 @@ from sources.result import DataResult, Metadata
|
||||
from sources.anii import metadata as AniiMetadata
|
||||
from sources.imdb import metadata as ImdbMetadata
|
||||
from sources.mal import metadata as MalMetadata
|
||||
from sources.cache import ResultCache
|
||||
|
||||
# Konfigurer Kafka-forbindelsen
|
||||
bootstrap_servers = os.environ.get("KAFKA_BOOTSTRAP_SERVER") or "127.0.0.1:9092"
|
||||
@ -123,8 +124,19 @@ class MessageHandlerThread(threading.Thread):
|
||||
if status_type == 'SUCCESS':
|
||||
data_value = self.message.value['data']["title"]
|
||||
|
||||
# Utfør handlingen basert på verdien
|
||||
result = None # Will be assigned by either cache_result or sel.perform_action
|
||||
print(f"Checking cache for offloading")
|
||||
cache_result = ResultCache.get(data_value)
|
||||
if cache_result:
|
||||
print(f"Cache hit for {data_value}")
|
||||
result = cache_result
|
||||
else:
|
||||
print(f"Searching in sources for infomration about {data_value}")
|
||||
result = self.perform_action(title=data_value)
|
||||
if (result.statusType == "SUCCESS"):
|
||||
print(f"Storing response for {data_value} in-memory cache")
|
||||
ResultCache.add(data_value, result)
|
||||
|
||||
|
||||
producerMessage = self.compose_message(referenceId=self.message.value["referenceId"], result=result)
|
||||
|
||||
|
||||
14
pyMetadata/sources/cache.py
Normal file
14
pyMetadata/sources/cache.py
Normal file
@ -0,0 +1,14 @@
|
||||
from typing import Optional
|
||||
from .result import DataResult
|
||||
|
||||
|
||||
class ResultCache:
|
||||
_cache = {}
|
||||
|
||||
@classmethod
|
||||
def add(cls, title: str, result: DataResult):
|
||||
cls._cache[title] = result
|
||||
|
||||
@classmethod
|
||||
def get(cls, title) -> Optional[DataResult]:
|
||||
return cls._cache.get(title)
|
||||
Loading…
Reference in New Issue
Block a user