Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

καλησπερα

 

έχω κάνει ένα απλό website χρησιμοποιωντας DJANGO όπου ο χρήστης αφού κάνει σύνδεση θα μπορεί να εισάγει σε μια φόρμα στο template τρεις αριθμούς αυτοί οι αριθμοί εισάγονται σε μια μαθηματική  συνάρτηση   στο views.py όπου η συνάρτηση αυτή υπολογίζει ένα αποτέλεσμα και το επιστρέφει πίσω στον χρήστη καθώς και ενημερώνετε η προσωπική βάση κάθε χρήστη με το αποτέλεσμα αυτό το οποίο μπορεί να το δει και στο προσωπικό του page.

 

το πρόβλημα μου είναι ότι η συνάρτηση για να δώσει το αποτέλεσμα πίσω στον χρήστη κάνει 5-6 λεπτά.

Σε αυτό το διάστημα η σελίδα κάνει reload μέχρι να δώσει το αποτέλεσμα.

 

αυτό το long reload μπορώ να το αποφύγω με κάποιο τρόπο χρησιμοποιωντας celery ή RabbitMQ και αν ναι πως γίνετε ?

 

Δηλ θα ήθελα μετά το request να μην περιμένει ο χρήστης αλλά μόλις ολοκληρωθεί η διαδικασία να ενημερωθεί με κάποιο email ή ακόμα καλύτερα απλά να το δει στο προσωπικό του page όταν η διαδικασία αυτή ενημέρωση την προσωπική του βάση .

views.py
def math_alg(request):
  if request.method == "POST":
    test = request.POST.get('no1')
    test = request.POST.get('no3')
    test = request.POST.get('no3')
    #start algorith
    calc_math(no1,no1,no3,result)
    instance = rmodel.objects.create(user=request.user,rfield=result)
    instance.save
  return render(request, 'page.html', {'result': result})


html :

<form action="" method="POST">{% csrf_token %}
op math calculate:<br>
<input type="number" name="no1" step="any" min="0" max="1" value="0.5">
<input type="number" name="no2" step="any" min="0" max="1" value="9999">
<input type="number" name="no3" step="any" min="0" max="1" value="1000000000000000">
<br>
<input class="btn btn-primary" type="submit">
{{result }}
</form>
Δημοσ.

Αν και σου έχουν πει στο άλλο thread κατι παρόμοιο, let's try one more time.

 

- Γίνεται το POST -> Στέλνεις μήνυμα στο queue του RabbitMQ/ActiveMQ/Whatever your message broker is -> Redirect τον χρήστη κάπου που του λέει πως θα ενημερωθεί μέσω e-mail για την ολοκλήρωση or whatever.

- Έχεις ένα python process το οποίο ακούει σε εκείνο το queue και μολίς λαμβάνει το μήνυμα ξεκινάει την επεξεργασία αυτού που κάνεις. Στο τέλος της επεξεργασίας κάνεις fire ένα send e-mail ή καλείς κάτι άλλο το οποίο κάπως κάνει αυτό που λες για την προσωπική σελίδα.

 

Προφανώς στο μήνυμα που θα στέλνεις στο queue, θα πρέπει να περιέχονται όλα τα data που χρειάζεσαι για την επεξεργασία και για το reply μετά.

  • Like 1
Δημοσ.

http://www.insomnia.gr/topic/637336-handling-images-in-django/

 

edit

 

Τώρα είδα ότι είσαι ο ίδιος...

βασικά θεωρώ ότι το ένα θέμα δεν εχει σχέση με το άλλο,αλλά πάλι αν τα θεωρείς το ίδιο πες μου να ζητήσω διαγραφή του post

Παραδειγμα δεν εχω, αλλα δες εδω http://django-q.readthedocs.io/en/latest/

σε ευχαριστώ έχει πολύ ενδιαφέροντα θέματα βέβαια χρειάζεται και πολύ δουλειά να φτάσω στο επίπεδο αυτό

Αν και σου έχουν πει στο άλλο thread κατι παρόμοιο, let's try one more time.

 

- Γίνεται το POST -> Στέλνεις μήνυμα στο queue του RabbitMQ/ActiveMQ/Whatever your message broker is -> Redirect τον χρήστη κάπου που του λέει πως θα ενημερωθεί μέσω e-mail για την ολοκλήρωση or whatever.

- Έχεις ένα python process το οποίο ακούει σε εκείνο το queue και μολίς λαμβάνει το μήνυμα ξεκινάει την επεξεργασία αυτού που κάνεις. Στο τέλος της επεξεργασίας κάνεις fire ένα send e-mail ή καλείς κάτι άλλο το οποίο κάπως κάνει αυτό που λες για την προσωπική σελίδα.

 

Προφανώς στο μήνυμα που θα στέλνεις στο queue, θα πρέπει να περιέχονται όλα τα data που χρειάζεσαι για την επεξεργασία και για το reply μετά.

σε ευχαριστώ σαν θεωρία εύκολα μου ακούγονται αλλά νομίζω θα είναι δύσκολο για εκτέλεση

Δημοσ.

Άσχετος με django αλλά κανέναν δεν προβληματίζει ότι κάτι τόσο απλό κάνει 5-6 λεπτά? 

Μήπως να δεις γιατί αργεί τόσο?

  • Like 1
Δημοσ.
σαν θεωρία εύκολα μου ακούγονται αλλά νομίζω θα είναι δύσκολο για εκτέλεση

 

 

Τα links που σου έχουμε δώσει έχουν αναλυτικότατα παραδείγματα. Αν θες βοήθεια κάπου ανέβασε τον κώδικα σου και κάνε συγκεκριμένες ερωτήσεις. Από πλευράς design το πρόβλημα (και η λύση) είναι ακριβώς ίδιο με αυτό που είχες πριν 6 μήνες.

 

@tsofras

Ο χρόνος δεν καταναλώνεται από το django αλλά από την calc_math()

  • Like 1
Δημοσ.

Άσχετος με django αλλά κανέναν δεν προβληματίζει ότι κάτι τόσο απλό κάνει 5-6 λεπτά? 

Μήπως να δεις γιατί αργεί τόσο?

@tsofras σου απάντησε ο @pmav99

Τα links που σου έχουμε δώσει έχουν αναλυτικότατα παραδείγματα. Αν θες βοήθεια κάπου ανέβασε τον κώδικα σου και κάνε συγκεκριμένες ερωτήσεις. Από πλευράς design το πρόβλημα (και η λύση) είναι ακριβώς ίδιο με αυτό που είχες πριν 6 μήνες.

 

@tsofras

Ο χρόνος δεν καταναλώνεται από το django αλλά από την calc_math()

είναι πάρα πολύ καλά παραδείγματα θα αρχίσω να δοκιμάζω να εφαρμόσω κάποια παραδείγματα στην εφαρμογή μου και ελπίζω να καταφέρω αυτό που θέλω. 

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...