mirror of
https://github.com/simple-login/app.git
synced 2024-09-30 05:31:30 +02:00
speed up should_disable()
This commit is contained in:
parent
e26287a4c7
commit
189eb8427e
@ -978,13 +978,12 @@ def should_disable(alias: Alias) -> bool:
|
|||||||
yesterday = arrow.now().shift(days=-1)
|
yesterday = arrow.now().shift(days=-1)
|
||||||
nb_bounced_last_24h = (
|
nb_bounced_last_24h = (
|
||||||
db.session.query(EmailLog)
|
db.session.query(EmailLog)
|
||||||
.join(Contact, EmailLog.contact_id == Contact.id)
|
|
||||||
.filter(
|
.filter(
|
||||||
EmailLog.bounced.is_(True),
|
EmailLog.bounced.is_(True),
|
||||||
EmailLog.is_reply.is_(False),
|
EmailLog.is_reply.is_(False),
|
||||||
EmailLog.created_at > yesterday,
|
EmailLog.created_at > yesterday,
|
||||||
)
|
)
|
||||||
.filter(Contact.alias_id == alias.id)
|
.filter(EmailLog.alias_id == alias.id)
|
||||||
.count()
|
.count()
|
||||||
)
|
)
|
||||||
# if more than 12 bounces in 24h -> disable alias
|
# if more than 12 bounces in 24h -> disable alias
|
||||||
@ -997,14 +996,13 @@ def should_disable(alias: Alias) -> bool:
|
|||||||
one_week_ago = arrow.now().shift(days=-8)
|
one_week_ago = arrow.now().shift(days=-8)
|
||||||
nb_bounced_7d_1d = (
|
nb_bounced_7d_1d = (
|
||||||
db.session.query(EmailLog)
|
db.session.query(EmailLog)
|
||||||
.join(Contact, EmailLog.contact_id == Contact.id)
|
|
||||||
.filter(
|
.filter(
|
||||||
EmailLog.bounced.is_(True),
|
EmailLog.bounced.is_(True),
|
||||||
EmailLog.is_reply.is_(False),
|
EmailLog.is_reply.is_(False),
|
||||||
EmailLog.created_at > one_week_ago,
|
EmailLog.created_at > one_week_ago,
|
||||||
EmailLog.created_at < yesterday,
|
EmailLog.created_at < yesterday,
|
||||||
)
|
)
|
||||||
.filter(Contact.alias_id == alias.id)
|
.filter(EmailLog.alias_id == alias.id)
|
||||||
.count()
|
.count()
|
||||||
)
|
)
|
||||||
if nb_bounced_7d_1d > 1:
|
if nb_bounced_7d_1d > 1:
|
||||||
@ -1022,8 +1020,7 @@ def should_disable(alias: Alias) -> bool:
|
|||||||
func.date(EmailLog.created_at).label("date"),
|
func.date(EmailLog.created_at).label("date"),
|
||||||
func.count(EmailLog.id).label("count"),
|
func.count(EmailLog.id).label("count"),
|
||||||
)
|
)
|
||||||
.join(Contact, EmailLog.contact_id == Contact.id)
|
.filter(EmailLog.alias_id == alias.id)
|
||||||
.filter(Contact.alias_id == alias.id)
|
|
||||||
.filter(
|
.filter(
|
||||||
EmailLog.created_at > arrow.now().shift(days=-10),
|
EmailLog.created_at > arrow.now().shift(days=-10),
|
||||||
EmailLog.bounced.is_(True),
|
EmailLog.bounced.is_(True),
|
||||||
|
Loading…
Reference in New Issue
Block a user