Redis
 sql >> डेटाबेस >  >> NoSQL >> Redis

Django - अजवाइन और रेडिस के साथ अतुल्यकालिक कार्य कतार का उपयोग कैसे करें?

जैसा कि पहले कहा गया है, आपको अजवाइन की आवश्यकता नहीं हो सकती है। यहां इसके मामले 2 से लिया गया एक उदाहरण दिया गया है:https://zapier.com/blog/async-celery-example-why-and-how/। यह मेरे लिए पूरी तरह से काम कर रहा है:

from time import sleep
import json
from django.http import HttpResponse
from django.shortcuts import render

def main_view(request):
    return render(request, 'index.html')

def ajax_view(request):
    sleep(10) #This is whatever work you need
    pi1 = "This is pi1" #I just made pi1/pis1 random values
    pis1 = "This is pis1"
    context = {
        "pi1" : pi1,
        "pis1" : pis1,
    }
    data = json.dumps(context)

    return HttpResponse(data, content_type='application/json')

मेरे index.html में शामिल हैं:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Main View</title>
    <script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
    <script>
    $(document).ready(function(){
        $.ajax({
            url: "/test_ajax/",
        }).done(function( data) {
            $("#pi1").text(data.pi1);
            $("#pis1").text(data.pis1); 
        });
    });
</script>
  </head>
  <body>
      <h1 id = "pi1">Loading</h1>
      <h1 id = "pis1">Loading</h1>
  </body>
</html>

और मेरे urls.py में शामिल हैं:

from django.conf.urls import include, url
from django.contrib import admin
from testDjango.test import main_view, ajax_view

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url(r'^test/', main_view),
    url(r'^test_ajax/', ajax_view)
]

जब मैं लोकलहोस्ट पर जाता हूं तो क्या होता है:8000/परीक्षण/ यह है कि मैं तुरंत देखें:

लगभग 10 सेकंड के बाद, मैं देखता हूँ:

विचार यह है कि आप अपना पृष्ठ तुरंत वापस कर दें और जब भी यह समाप्त हो जाए तो ऑपरेशन के परिणाम प्राप्त करने के लिए jQuery का उपयोग करें और तदनुसार अपना पृष्ठ अपडेट करें। आप प्रोग्रेस बार/लोडिंग इमेज इत्यादि जैसी और चीजें जोड़ सकते हैं। आपके उदाहरण के लिए, आप pi1 के लिए प्रोसेसिंग कर सकते हैं और pis पृष्ठभूमि में और समाप्त होने के बाद इसे HTML में लोड करें।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. हैश कुंजी नाम के आधार पर थोक में रेडिस हैश मान हटाएं

  2. रेडिस-क्ली + स्टनल के अलावा अन्य क्लाइंट से इन-ट्रांजिट एन्क्रिप्शन + प्रमाणीकरण के साथ एडब्ल्यूएस इलास्टी कैश से कनेक्ट करें

  3. Redis' Lua cjson में शून्य/शून्य की जांच कैसे करें?

  4. ऑब्जेक्ट 'लक्ष्य' में फ़ील्ड त्रुटि 'फ़ील्ड' पर:अस्वीकृत मान []; कोड [typeMismatch.target.,typeMismatch.,typeMismatch.java.util.Date,typeMismatch]

  5. रेडिस का परिचय