2016-04-07 15:03:22 +02:00
|
|
|
#!/usr/bin/env python
|
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
|
|
|
"""
|
|
|
|
|
|
|
|
from __future__ import absolute_import
|
2015-11-01 17:11:06 +01:00
|
|
|
from __future__ import print_function
|
2013-11-13 01:52:40 +01:00
|
|
|
|
2016-06-04 16:52:18 +02:00
|
|
|
from typing import Any
|
2013-11-13 01:52:40 +01:00
|
|
|
from django.conf import settings
|
|
|
|
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
|
|
|
|
|
|
|
from datetime import datetime, timedelta
|
|
|
|
|
|
|
|
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
|
|
|
"""
|
|
|
|
|
2013-11-13 22:59:04 +01:00
|
|
|
def handle(self, *args, **options):
|
2016-06-04 16:52:18 +02:00
|
|
|
# type: (*Any, **Any) -> None
|
2017-07-02 21:10:41 +02:00
|
|
|
print(ScheduledEmail.objects.filter(
|
|
|
|
scheduled_timestamp__lte=timezone_now()-timedelta(minutes=1)).count())
|