2013-05-13 2 views
1

장고 응용 프로그램에 일종의 "실시간"알림 시스템을 구현하고 싶습니다.주기적으로 데이터를 가져 와서 장고로 표시

내 데이터베이스에 특정 사용자를 대상으로하는 일부 메시지를 저장합니다. 사용자가 응용 프로그램에 로그인하면 데이터베이스에 해당 사용자에 대한 알림이 있으면 메시지 프레임 워크를 사용하여 응용 프로그램에 표시됩니다. 메시지를 클릭하면 데이터베이스에서 삭제됩니다.

나는 "매분 데이터 가져 오기"작업에 조금 갇혀 있습니다. 셀러리 (http://docs.celeryproject.org/en/latest/#)에 대해 들었지만, 잠수하기 전에 거기에 갈 방법을 확실히하고 싶습니다. 설정하고 사용하기가 다소 복잡해 보입니다.

장고를 꾸미는 쉬운 방법이 있거나 이미하고 싶은 것과 비슷한 것이 있다면, 어떤 힌트라도 주시면 감사하겠습니다!

+0

단어 : Ajax. 특정 태스크에 대한 뷰 메소드를 정의하고 Ajax를 사용하여 javascript 클라이언트 코드 내에서 호출하십시오. 그것은 당신을 시작할 수있는 간단한 방법입니다. –

+0

그리고 어떻게이 메소드를 주기적으로 호출합니까? 난 정확히 Ajax 전문가가 아니야 – Johanna

+0

그리고 다른 질문은이 솔루션이 내 애플리케이션을 많이 늦추지 않을까? – Johanna

답변

3

을, 당신은 아약스와 함께 할 수 단순한 작업입니다 경우.

그냥 아약스 쿼리에 대한 하나 개의 URL을 선언 한 후

#urls.py 

... 
url(r'^ajax/my_query$', my_app.views.ajax_processor) 
... 

당신의 my_app/views.py에 : 서버 측에서 수행해야

#views.py 

def ajax_processor(request): 

    ... do the processing you want as if it is a normal web request. 
    ... like querying the database 
    ... you can return a `json` dictionary 
    ... or a normal `render_to_response` template with html 

합니다. 클라이언트 측에서 $.ajax 기능을 jQuery를 사용하는 것이 사랑하고 할 것이 :

$.ajax({ 
    url:'/ajax/my_query', // a normal get request 
    success:function(data){ // success is the callback when the server responds 
     /* if is json what you decided to return then process the json dict 
      if is normal html render it wherver you want 
     */ 
    } 
}); 

그냥 간단 세트 업, 서버 측 코드의 비트와 클라이언트 측 코드의 비트가 .

무겁게 실시간 기반 응용 프로그램을 개발하려는 경우 더 나은 라이브러리를 사용해야하지만 비동기 적으로 약간의 쿼리 만 수행해야한다면이 방법을 고려할 수 있습니다.

Here is a good and simple ajax tutorial Ajax를 이해하는 데 도움이되는 학교 및 here에서는 ajax/jquery를 사용하여 폴링에 대한 유용한 정보를 찾을 수 있습니다.

행운을 빈다.

+0

세부 사항을 고맙다, 나는 셀러리를 시험해보기 전에 그것을 시도 할 것이라고 생각한다. 내 함수는 아약스가 처리 할 수있을만큼 단순해야한다고 생각한다. – Johanna

+0

반갑습니다. Ajax 튜토리얼에 대한 링크를 추가하여 조금 더 도움을줍니다. –

1

는 여기에 몇 가지 옵션을 고려해야 할 :

  • celery. 그렇습니다. 설치하는 것이 그렇게 쉬운 일은 아니지만 구성하고 사용하기가 쉽습니다. django-celery을 통해 파이썬/장고 측에서 사용하십시오. 셀러리 periodic tasks도보십시오.

  • rq (Redis Queue). 설치가 간단한 간단한 작업 대기열.

  • . admin 명령으로 cron 작업을 쉽게 생성하고 실행할 수 있습니다.

또한 참조 :

+0

링크를 가져 주셔서 감사합니다! 나는 가능한 한 빨리 그들을 체크 아웃 할 것이다. – Johanna

관련 문제