Files
controller-wisetopdataserver/python/biopro/server/trash.py
T
2021-12-20 14:52:55 +08:00

52 lines
1.4 KiB
Python

from biopro.file.manager import FileManager
from biopro.util.stack import print_exception
from .socket import ServerThread
class RoutineTrashThread(ServerThread):
def __init__(self,
manager: FileManager,
interval_hours: int,
trash_expire_days: int,
remove_expire_days: int):
super().__init__('Trash')
self._manager = manager
self._interval = interval_hours * 60 * 60
self._trash_expire = trash_expire_days
self._remove_expire = remove_expire_days
@property
def routine_interval(self) -> int:
return self._interval
@property
def trash_expire(self) -> int:
return self._trash_expire
@property
def remove_expire(self) -> int:
return self._remove_expire
def setup(self) -> None:
super().setup()
# perform remove
self.log_info('clean trash')
self._manager.clean_trash(self._remove_expire)
self.log_info('clean trash done')
def routine(self, event = None) -> None:
event.wait(self._interval)
try:
self.log_info('clean trash')
self._manager.clean_trash(self._remove_expire)
self.log_info('clean storage')
self._manager.perform_trashing(self._trash_expire)
except:
print_exception(self)
finally:
self.log_info('clean done')