Преглед изворни кода

hard exit when memory is more than 300MB

Son NK пре 5 година
родитељ
комит
e988573cb4
1 измењених фајлова са 13 додато и 1 уклоњено
  1. 13 1
      app/pgp_utils.py

+ 13 - 1
app/pgp_utils.py

@@ -1,3 +1,4 @@
+import os
 from io import BytesIO
 from io import BytesIO
 
 
 import gnupg
 import gnupg
@@ -24,11 +25,22 @@ def load_public_key(public_key: str) -> str:
         raise PGPException("Cannot load key") from e
         raise PGPException("Cannot load key") from e
 
 
 
 
+def hard_exit():
+    pid = os.getpid()
+    LOG.warning("kill pid %s", pid)
+    os.kill(pid, 9)
+
+
 def encrypt_file(data: BytesIO, fingerprint: str) -> str:
 def encrypt_file(data: BytesIO, fingerprint: str) -> str:
     LOG.d("encrypt for %s", fingerprint)
     LOG.d("encrypt for %s", fingerprint)
-    mem_usage = memory_usage(-1, interval=1, timeout=1)
+    mem_usage = memory_usage(-1, interval=1, timeout=1)[0]
     LOG.d("mem_usage %s", mem_usage)
     LOG.d("mem_usage %s", mem_usage)
 
 
+    # todo
+    if mem_usage > 300:
+        LOG.error("Force exit")
+        hard_exit()
+
     r = gpg.encrypt_file(data, fingerprint, always_trust=True)
     r = gpg.encrypt_file(data, fingerprint, always_trust=True)
     if not r.ok:
     if not r.ok:
         LOG.error("Try encrypt again %s", fingerprint)
         LOG.error("Try encrypt again %s", fingerprint)