add message
This commit is contained in:
parent
235bdc73aa
commit
da549551ee
|
@ -1,4 +1,8 @@
|
||||||
from django.apps import AppConfig
|
from django.apps import AppConfig
|
||||||
|
from . import tasks
|
||||||
|
|
||||||
class PollsConfig(AppConfig):
|
class PollsConfig(AppConfig):
|
||||||
name = 'polls'
|
name = 'polls'
|
||||||
|
|
||||||
|
def ready(self):
|
||||||
|
tasks.process_notify_task(repeat=5)
|
|
@ -222,3 +222,5 @@ class SMSNotifyRecord(models.Model):
|
||||||
id = models.UUIDField('id', primary_key=True, default=uuid.uuid4)
|
id = models.UUIDField('id', primary_key=True, default=uuid.uuid4)
|
||||||
phone = models.CharField('phone', max_length=32)
|
phone = models.CharField('phone', max_length=32)
|
||||||
added = models.DateField(auto_now_add=True)
|
added = models.DateField(auto_now_add=True)
|
||||||
|
notice_id = models.CharField('notice_id', max_length=64)
|
||||||
|
updated = models.DateTimeField(auto_now=True)
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
from background_task import background
|
from background_task import background
|
||||||
from datetime import date, datetime, timedelta
|
from datetime import date, datetime, timedelta
|
||||||
|
import time
|
||||||
from polls.models import Notice, SMSNotifyRecord
|
from polls.models import Notice, SMSNotifyRecord
|
||||||
from polls.utils import sent_sms_notify
|
from polls.utils import sent_sms_notify
|
||||||
|
|
||||||
|
|
||||||
@background(remove_existing_tasks=True)
|
@background(remove_existing_tasks=True)
|
||||||
def process_notify_task():
|
def process_notify_task():
|
||||||
|
print('start task')
|
||||||
|
start = time.process_time()
|
||||||
notices = Notice.objects.filter(is_read=False)
|
notices = Notice.objects.filter(is_read=False)
|
||||||
for n in notices:
|
for n in notices:
|
||||||
two_hours_later = n.added + timedelta(minutes=2)
|
two_hours_later = n.added + timedelta(minutes=2)
|
||||||
|
@ -15,10 +17,13 @@ def process_notify_task():
|
||||||
phone = n.user.username
|
phone = n.user.username
|
||||||
today = now.date()
|
today = now.date()
|
||||||
hour = now.hour
|
hour = now.hour
|
||||||
exists = SMSNotifyRecord.objects.filter(phone=phone, added=today).exists()
|
exists = SMSNotifyRecord.objects.filter(
|
||||||
if exists: return
|
phone=phone, added=today, notice_id=n.id).exists()
|
||||||
if hour < 8 or hour > 17: return
|
if exists:
|
||||||
print('============',phone, n.type)
|
return
|
||||||
|
if hour < 8 or hour > 20:
|
||||||
|
return
|
||||||
|
print('============', phone, n.type)
|
||||||
SMSNotifyRecord.objects.create(phone=phone)
|
SMSNotifyRecord.objects.create(phone=phone)
|
||||||
sent_sms_notify(phone, n.type)
|
sent_sms_notify(phone, n.type)
|
||||||
|
print('end task', time.process_time() - start)
|
||||||
|
|
|
@ -73,6 +73,4 @@ urlpatterns = [
|
||||||
path('app/intro.html', views.app_intro, name='polls_app_intro'),
|
path('app/intro.html', views.app_intro, name='polls_app_intro'),
|
||||||
path('app/download/', views.download, name='polls_app_download'),
|
path('app/download/', views.download, name='polls_app_download'),
|
||||||
path('app/has/update/', views.has_update, name='polls_app_has_update')
|
path('app/has/update/', views.has_update, name='polls_app_has_update')
|
||||||
]
|
]
|
||||||
|
|
||||||
tasks.process_notify_task(repeat=5)
|
|
Loading…
Reference in New Issue