2013-11-13 01:52:40 +01:00
|
|
|
"""
|
2017-07-02 21:10:41 +02:00
|
|
|
Shows backlog count of ScheduledEmail
|
2013-11-13 01:52:40 +01:00
|
|
|
"""
|
2017-11-16 00:43:27 +01:00
|
|
|
from datetime import timedelta
|
2016-06-04 16:52:18 +02:00
|
|
|
from typing import Any
|
2017-11-16 00:43:27 +01:00
|
|
|
|
2013-11-13 01:52:40 +01:00
|
|
|
from django.core.management.base import BaseCommand
|
2017-04-15 04:03:56 +02:00
|
|
|
from django.utils.timezone import now as timezone_now
|
2013-11-13 01:52:40 +01:00
|
|
|
|
2017-07-02 21:10:41 +02:00
|
|
|
from zerver.models import ScheduledEmail
|
2013-11-13 01:52:40 +01:00
|
|
|
|
2020-01-14 21:59:46 +01:00
|
|
|
|
2013-11-13 01:52:40 +01:00
|
|
|
class Command(BaseCommand):
|
2017-07-02 21:10:41 +02:00
|
|
|
help = """Shows backlog count of ScheduledEmail
|
2013-11-13 01:52:40 +01:00
|
|
|
(The number of currently overdue (by at least a minute) email jobs)
|
|
|
|
|
|
|
|
This is run as part of the nagios health check for the deliver_email command.
|
|
|
|
|
2016-11-22 01:44:16 +01:00
|
|
|
Usage: ./manage.py print_email_delivery_backlog
|
2013-11-13 01:52:40 +01:00
|
|
|
"""
|
|
|
|
|
2017-10-26 11:35:57 +02:00
|
|
|
def handle(self, *args: Any, **options: Any) -> None:
|
2017-07-02 21:10:41 +02:00
|
|
|
print(ScheduledEmail.objects.filter(
|
|
|
|
scheduled_timestamp__lte=timezone_now()-timedelta(minutes=1)).count())
|