2011-03-07 2 views
0

경고 시스템을 만들고 싶습니다. 어떻게 이러한 기능을 구현할 수 있습니까?Django/Python : timestamp = NOW() 일 때 mysql 데이터베이스를 모니터링하고 전자 메일을 트리거하는 방법은 무엇입니까?

나는 사용자의 메시지와 타임 스탬프 (또는 datetime)를 저장하는 MySQL 데이터베이스를 가지고있다. 타임 스탬프가 현재 타임 스탬프보다 큰 경우 해당 사용자에게 전자 메일을 보내도록 트리거하고 싶습니다.

어떻게 장고/파이썬 기반 웹 응용 프로그램을 사용하여 해당 기능을 구현할 수 있습니까? 데이터베이스를 모니터링하기 위해 cron 작업을 사용해야합니까? 또는 데이터베이스를 모니터링하고 API 호출을 트리거하여 전자 메일을 보내는 도구가 있습니까?

고마워요! 나는 큰 응답을 기다릴 것이다!

+0

이메일 트리거링은 한 번만 수행됩니다. – CIF

답변

1

당신은 장고에서 볼 수 있어야하고 실제로 외부 cron을 데이터베이스에서 실행할 필요가 없습니다. 좀 더 명확히하기 위해 메시지가 뷰에서 처리 될 때 전자 메일을 보내고 싶습니까? 아니면 다른 작업으로 인해 메시지가 생성 된 다음 메시지를 보내려고합니다. 보기에서 당신이 즉시 이메일을 발사 할 수에서

from django.core.mail import EmailMultiAlternatives 
from django.template.loader import render_to_string 
from django.utils.html import strip_tags 
import logging 

logging.basicConfig(level=logging.DEBUG) 
log = logging.getLogger(__name__) 

def send_message(to): 
    log.error('starting send email') 
    subject, from_email = 'Message Confirmation', '[email protected]' 
    html_content = render_to_string('emails/message.html', {'email': str(to)}) 
    # this strips the html, so people will have the text as well. 
    text_content = strip_tags(html_content) 
    # create the email, and attach the HTML version as well. 
    msg = EmailMultiAlternatives(subject, text_content, from_email, [to]) 
    msg.attach_alternative(html_content, "text/html") 
    msg.send() 

:

send_message(user_email) 

또는 당신의 날짜를 확인할 수 있습니다 당신이 뭔가를 할 수도 있습니다 이메일 자체를 전송

메시지와 시간이 특정 가치가 있다면 보내십시오.