X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=lockfile.py;h=2d429147937d01b37a057910c50004374917af0f;hb=65e6f781dffb268be6ef0a015f4cc89b57b62a5e;hp=4b6aadeffde8ec7bf255025873d720e2b3afda93;hpb=e6f32fdd9b373dfcd100c7accb41f57d83c2f0a1;p=python_utils.git diff --git a/lockfile.py b/lockfile.py index 4b6aade..2d42914 100644 --- a/lockfile.py +++ b/lockfile.py @@ -1,20 +1,19 @@ #!/usr/bin/env python3 -from dataclasses import dataclass import datetime import json import logging import os import signal import sys -from typing import Optional import warnings +from dataclasses import dataclass +from typing import Optional import config import datetime_utils import decorator_utils - cfg = config.add_commandline_args(f'Lockfile ({__file__})', 'Args related to lockfiles') cfg.add_argument( '--lockfile_held_duration_warning_threshold_sec', @@ -34,7 +33,7 @@ class LockFileException(Exception): class LockFileContents: pid: int commandline: str - expiration_timestamp: float + expiration_timestamp: Optional[float] class LockFile(object): @@ -130,10 +129,7 @@ class LockFile(object): if self.locktime: ts = datetime.datetime.now().timestamp() duration = ts - self.locktime - if ( - duration - >= config.config['lockfile_held_duration_warning_threshold_sec'] - ): + if duration >= config.config['lockfile_held_duration_warning_threshold_sec']: str_duration = datetime_utils.describe_duration_briefly(duration) msg = f'Held {self.lockfile} for {str_duration}' logger.warning(msg) @@ -181,7 +177,7 @@ class LockFile(object): # Has the lock expiration expired? if contents.expiration_timestamp is not None: now = datetime.datetime.now().timestamp() - if now > contents.expiration_datetime: + if now > contents.expiration_timestamp: msg = f'Lockfile {self.lockfile} expiration time has passed; force acquiring' logger.warning(msg) self.release()