From b21b27bb6e230901281bb524f84e177c937b48fd Mon Sep 17 00:00:00 2001 From: Krateng Date: Fri, 29 May 2020 17:39:19 +0200 Subject: [PATCH] Made psutil optional --- maloja/__pkginfo__.py | 5 ++--- maloja/database.py | 24 +++++++++++++++--------- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/maloja/__pkginfo__.py b/maloja/__pkginfo__.py index 8e51d9e..561a9ae 100644 --- a/maloja/__pkginfo__.py +++ b/maloja/__pkginfo__.py @@ -5,7 +5,7 @@ author = { "email":"maloja@krateng.dev", "github": "krateng" } -version = 2,4,8 +version = 2,4,9 versionstr = ".".join(str(n) for n in version) links = { "pypi":"malojaserver", @@ -21,8 +21,7 @@ requires = [ "wand>=0.5.4", "lesscpy>=0.13", "jinja2>2.11", - "lru-dict>=1.1.6", - "psutil>0.5.0" + "lru-dict>=1.1.6" ] resources = [ "web/*/*/*", diff --git a/maloja/database.py b/maloja/database.py index 8e01297..d56fa0d 100644 --- a/maloja/database.py +++ b/maloja/database.py @@ -34,7 +34,6 @@ from collections import namedtuple from threading import Lock import yaml import lru -import psutil # url handling from importlib.machinery import SourceFileLoader @@ -1057,6 +1056,11 @@ else: csz = settings.get_settings("DB_CACHE_ENTRIES") cmp = settings.get_settings("DB_MAX_MEMORY") +try: + import psutil + use_psutil = True +except: + use_psutil = False cache_query = lru.LRU(csz) cache_query_perm = lru.LRU(csz) @@ -1121,10 +1125,11 @@ def db_query_cached(**kwargs): if eligible_permanent_caching: cache_query_perm[key] = result elif eligible_temporary_caching: cache_query[key] = result - ramprct = psutil.virtual_memory().percent - if ramprct > cmp: - log("{prct} RAM usage, dumping temporary caches!".format(prct=ramprct),module="debug") - invalidate_caches() + if use_psutil: + ramprct = psutil.virtual_memory().percent + if ramprct > cmp: + log("{prct} RAM usage, dumping temporary caches!".format(prct=ramprct),module="debug") + invalidate_caches() return result @@ -1159,10 +1164,11 @@ def db_aggregate_cached(**kwargs): if eligible_permanent_caching: cache_aggregate_perm[key] = result elif eligible_temporary_caching: cache_aggregate[key] = result - ramprct = psutil.virtual_memory().percent - if ramprct > cmp: - log("{prct} RAM usage, dumping temporary caches!".format(prct=ramprct),module="debug") - invalidate_caches() + if use_psutil: + ramprct = psutil.virtual_memory().percent + if ramprct > cmp: + log("{prct} RAM usage, dumping temporary caches!".format(prct=ramprct),module="debug") + invalidate_caches() return result