fix circular import and show log of plugins loading on startup

This commit is contained in:
Nick Sweeting 2024-10-14 15:35:03 -07:00
parent ad4657861f
commit 518c46b4ab
No known key found for this signature in database
4 changed files with 48 additions and 6 deletions
archivebox/abid_utils

View file

@ -321,6 +321,44 @@ class ABIDModel(models.Model):
def get_absolute_url(self):
return self.api_docs_url
class ModelWithHealthStats(models.Model):
num_uses_failed = models.PositiveIntegerField(default=0)
num_uses_succeeded = models.PositiveIntegerField(default=0)
class Meta:
abstract = True
def record_health_failure(self) -> None:
self.num_uses_failed += 1
self.save()
def record_health_success(self) -> None:
self.num_uses_succeeded += 1
self.save()
def reset_health(self) -> None:
# move all the failures to successes when resetting so we dont lose track of the total count
self.num_uses_succeeded = self.num_uses_failed + self.num_uses_succeeded
self.num_uses_failed = 0
self.save()
@property
def health(self) -> int:
total_uses = max((self.num_uses_failed + self.num_uses_succeeded, 1))
success_pct = (self.num_uses_succeeded / total_uses) * 100
return round(success_pct)
####################################################
# Django helpers