mirror of
https://github.com/simple-login/app.git
synced 2024-09-28 12:41:29 +02:00
Date compare in DB instead of model function
This commit is contained in:
parent
a9c897c6c5
commit
969616d671
@ -25,7 +25,6 @@ from app.config import (
|
|||||||
FIRST_ALIAS_DOMAIN,
|
FIRST_ALIAS_DOMAIN,
|
||||||
DISABLE_ONBOARDING,
|
DISABLE_ONBOARDING,
|
||||||
UNSUBSCRIBER,
|
UNSUBSCRIBER,
|
||||||
HIBP_SCAN_INTERVAL_DAYS,
|
|
||||||
)
|
)
|
||||||
from app.errors import AliasInTrashError
|
from app.errors import AliasInTrashError
|
||||||
from app.extensions import db
|
from app.extensions import db
|
||||||
@ -1088,11 +1087,6 @@ class Alias(db.Model, ModelMixin):
|
|||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def needs_hibp_scan(self):
|
|
||||||
return self.hibp_last_check is None or (
|
|
||||||
self.hibp_last_check < arrow.now().shift(days=-HIBP_SCAN_INTERVAL_DAYS)
|
|
||||||
)
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def create(cls, **kw):
|
def create(cls, **kw):
|
||||||
# whether should call db.session.commit
|
# whether should call db.session.commit
|
||||||
|
16
cron.py
16
cron.py
@ -7,7 +7,7 @@ from typing import List, Tuple
|
|||||||
|
|
||||||
import arrow
|
import arrow
|
||||||
import requests
|
import requests
|
||||||
from sqlalchemy import func, desc
|
from sqlalchemy import func, desc, or_
|
||||||
|
|
||||||
from app import s3
|
from app import s3
|
||||||
from app.alias_utils import nb_email_log_for_mailbox
|
from app.alias_utils import nb_email_log_for_mailbox
|
||||||
@ -20,6 +20,7 @@ from app.config import (
|
|||||||
URL,
|
URL,
|
||||||
AlERT_WRONG_MX_RECORD_CUSTOM_DOMAIN,
|
AlERT_WRONG_MX_RECORD_CUSTOM_DOMAIN,
|
||||||
HIBP_API_KEYS,
|
HIBP_API_KEYS,
|
||||||
|
HIBP_SCAN_INTERVAL_DAYS,
|
||||||
)
|
)
|
||||||
from app.dns_utils import get_mx_domains
|
from app.dns_utils import get_mx_domains
|
||||||
from app.email_utils import (
|
from app.email_utils import (
|
||||||
@ -830,9 +831,16 @@ def check_hibp():
|
|||||||
|
|
||||||
LOG.d("Preparing list of aliases to check")
|
LOG.d("Preparing list of aliases to check")
|
||||||
queue = multiprocessing.Queue()
|
queue = multiprocessing.Queue()
|
||||||
for alias in Alias.query.order_by(Alias.hibp_last_check.asc().nullsfirst()).all():
|
max_date = arrow.now().shift(days=-HIBP_SCAN_INTERVAL_DAYS)
|
||||||
if alias.needs_hibp_scan():
|
for alias in (
|
||||||
queue.put(alias.id)
|
Alias.query.filter(
|
||||||
|
or_(Alias.hibp_last_check.is_(None), Alias.hibp_last_check < max_date)
|
||||||
|
)
|
||||||
|
.order_by(Alias.hibp_last_check.asc().nullsfirst())
|
||||||
|
.all()
|
||||||
|
):
|
||||||
|
queue.put(alias.id)
|
||||||
|
|
||||||
LOG.d("Need to check about %s aliases", queue.qsize())
|
LOG.d("Need to check about %s aliases", queue.qsize())
|
||||||
|
|
||||||
# Start one checking process per API key
|
# Start one checking process per API key
|
||||||
|
Loading…
Reference in New Issue
Block a user