Uberalles_gr Δημοσ. 12 Μαρτίου 2012 Δημοσ. 12 Μαρτίου 2012 Καλημέρα, θέλω έναν τρόπο που να έχω μια σελίδα php και να "καλέσω" μία σελίδα (με διαφορετικές παραμέτρους) ΤΑΥΤΟΧΡΟΝΑ πάρα πολλές φορές. Ο αριθμός ξεπερνάει το 1.000. Δεν θέλω δηλαδή να καλέσω μια σελίδα, να περιμένω να μου απαντήσει και να χτυπήσω την επόμενη. Θέλω όλες τις σελίδες ΜΑΖΙ!! Έχω βρει έναν τρόπο αλλά το θέμα είναι ότι αρκετά χτυπήματα σε αυτή την σελίδα χάνονται. Ο λόγος άγνωστος. Έχετε κάποια ιδέα πως μπορεί να γίνει κάτι τέτοιο;;
greeker Δημοσ. 12 Μαρτίου 2012 Δημοσ. 12 Μαρτίου 2012 θέλεις να μας πεις τι ανάγκη εξυπηρετεί αυτό; ο λόγος που χάνονται κάποια από τα request είναι οτι ο server τα αγνοεί όταν δεν προλαβαίνει να ανταπεξέλθει.. διαφορετικά θα ήταν πανεύκολο να κρεμάσεις οποιονδήποτε server... όχι ότι με παρόμοιες μεθόδους δεν γίνεται οπότε, μάλλον πρέπει να σκεφτείς έναν άλλο τρόπο να λύσεις το πρόβλημα που έχεις...
Uberalles_gr Δημοσ. 12 Μαρτίου 2012 Μέλος Δημοσ. 12 Μαρτίου 2012 Η ανάγκη είναι, όταν γίνει κάτι, τότε ΤΑΥΤΟΧΡΟΝΑ να καλέσω μια συγκεκριμένη σελίδα (με διαφορετικούς παράμετρους) να κάνω κάτι υπολογισμούς, να δημιουργήσω κάτι xml και αυτά να τα ποστάρω σε κάποιο URL. Επειδή θα έχω πολλά πολλά URLS διαφορετικά, θα πρέπει ΤΑΥΤΟΧΡΟΝΑ να γίνουν αυτοί οι υπολογισμοί, η δημιουργία των xml και η αποστολή τους κάθε φορά στο διαφορετικό URL! Επομένως, εάν έχω 1.000 URL θα πρέπει ΤΑΥΤΟΧΡΟΝΑ να ποστάρω αυτά τα xml (για κάθε URL έχω και διαφορετικό xml) στα 1.000 διαφορετικά URL. Δεν μπορώ να περιμένω να τελειώσει ένα ποστάρισμα για να συνεχίσω στο επόμενο γιατί ο τελευταίος θα το πάρει πολύ αργότερα!
greeker Δημοσ. 13 Μαρτίου 2012 Δημοσ. 13 Μαρτίου 2012 Η ανάγκη είναι, όταν γίνει κάτι, τότε ΤΑΥΤΟΧΡΟΝΑ να καλέσω μια συγκεκριμένη σελίδα (με διαφορετικούς παράμετρους) να κάνω κάτι υπολογισμούς, να δημιουργήσω κάτι xml και αυτά να τα ποστάρω σε κάποιο URL. Επειδή θα έχω πολλά πολλά URLS διαφορετικά, θα πρέπει ΤΑΥΤΟΧΡΟΝΑ να γίνουν αυτοί οι υπολογισμοί, η δημιουργία των xml και η αποστολή τους κάθε φορά στο διαφορετικό URL! Επομένως, εάν έχω 1.000 URL θα πρέπει ΤΑΥΤΟΧΡΟΝΑ να ποστάρω αυτά τα xml (για κάθε URL έχω και διαφορετικό xml) στα 1.000 διαφορετικά URL. Δεν μπορώ να περιμένω να τελειώσει ένα ποστάρισμα για να συνεχίσω στο επόμενο γιατί ο τελευταίος θα το πάρει πολύ αργότερα! αυτή η σελίδα που θα σου απαντάει είναι δική σου; εννοώ έχεις τον πλήρη έλεγχο του interface ή όχι;
dewn735 Δημοσ. 13 Μαρτίου 2012 Δημοσ. 13 Μαρτίου 2012 Για το ότι χάνονται requests, ίσως θα έπρεπε να ξανακοιτάξεις το configuration του apache. Δε μπορώ να καταλάβω τι project προσπαθείς να φτιάξεις, αλλά δε μου ακούγεται και σαν βέλτιστη λύση αυτό που προσπαθείς να κάνεις. Αντί να τα κάνεις όλα αυτά ταυτόχρονα και να γίνεται κακός χαμός, γιατί δε δοκιμάζεις κάτι διαφορετικό: όταν γίνει αυτό το "κάτι" που λες: Ένα script (όχι απαραίτητα php) που τρέχει στο background βλέπει αυτό το "κάτι" και ξεκινάει τη ρουτίνα υπολογισμού Ο server παίρνει ένα αντίγραφο των δεδομένων εκείνης της στιγμής (για να είναι κοινά μέχρι και το τέλος) Όλοι οι clients στέλνουν τις παραμέτρους στον server Όταν στείλουν όλοι τις απαραίτητες παραμέτρους, ξεκινάει ο υπολογισμός Μόλις τελειώσει ο υπολογισμός, επιστρέφεις τα αποτελέσματα
defacer Δημοσ. 13 Μαρτίου 2012 Δημοσ. 13 Μαρτίου 2012 Ο μόνος τρόπος για να κάνεις κάτι τέτοιο είναι με την curl_multi_init και την εύλογη συνέχεια. Παρόλα αυτά: Η προσέγγισή σου δε νομίζω να δουλέψει γενικότερα γιατί το ξεκινάς από λάθος βάση. Δε γίνεται να χτυπάς χιλιάδες requests ταυτόχρονα on demand από ένα μηχάνημα και να περιμένεις να πάνε όλα μέλι γάλα, όπως λέει ο dewn.
Uberalles_gr Δημοσ. 13 Μαρτίου 2012 Μέλος Δημοσ. 13 Μαρτίου 2012 Θα σας πω την απλή εκδοχή: Έχω έναν πελάτη. Έχω στον server μια σελίδα php, όπου θέλω όταν γίνει "κάτι" τότε, να κάνω ένα query στην βάση, να μαζέψω όλα τα δεδομένα που χρειάζομαι, μα δω σε ποιους πελάτες πρέπει να στείλω ένα xml (στην περίπτωση μας υπάρχει μόνο 1ας) και τότε δημιουργώ το xml και το στέλνω στον πελάτη. Εάν έχω 100 πελάτες θα πρέπει η αποστολή του xml, για κάθε πελάτη είναι διαφορετικό xml, να γίνει ταυτόχρονα. Δηλαδή, μην το πάρει ο 1ος πελάτης μετά από 0,5 δευτερόλεπτο και ο τελευταίος επειδή περίμενε όλους τους άλλους να το πάρει μετά από 5 δευτερόλεπτα. Έχω βρει ένα script σε php με multithread (χρησιμοποιεί την curl_multi_init και άλλα διάφορα) αλλά πάλι δεν με ικανοποιεί γιατί είναι "επικίνδυνο"! Σκέφτομαι, ότι αυτό γίνεται με Java αλλά από Java δεν το έχουμε....
greeker Δημοσ. 13 Μαρτίου 2012 Δημοσ. 13 Μαρτίου 2012 αρχίζω και καταλαβαίνω τι θέλεις και κάπου πάει το μυαλό μου σαν παράδειγμα... πχ έχεις συνδεδεμένους 100 clients και τους ενημερώνεις real-time για ένα γεγονός πχ αγώνας ποδοσφαίρου (τώρα έχει κορνερ, τώρα επίθεση ο τάδε, τώρα φάουλ, τώρα γκολ κλπ) οπότε θέλεις να παίρνουν όλοι μαζί τις όποιες ενημερώσεις... προφανώς πρέπει να αποφύγεις 1000 διαφορετικά request/reply γιατί είναι αδύνατο να είσαι σίγουρος ότι θα συγχρονιστούνε δεν ξέρω καν αν γίνεται αυτό με php (το αμφιβάλλω αλλά δεν το λέω με σιγουριά) θέλεις μια λύση τύπου broadcast σε τοπικό δίκτυο... ίσως κάποιο vpn, αλλά και πάλι δεν είμαι σίγουρος για τον απόλυτο συγχρονισμό που θέλεις.... ίσως πρέπει να χρησιμοποιήσεις άλλη/κατάλληλη τεχνολογία πέρα από τα "απλά" php κλπ
Uberalles_gr Δημοσ. 14 Μαρτίου 2012 Μέλος Δημοσ. 14 Μαρτίου 2012 Επομένως, με php δεν γίνεται;;; Πρέπει να αναζητήσω σε άλλες γλώσσες;;
dewn735 Δημοσ. 14 Μαρτίου 2012 Δημοσ. 14 Μαρτίου 2012 Μωρέ όλα γίνονται, αλλά δεν είναι εκεί το θέμα - θα παιδευτείς άδικα για κάτι που ενδεχομένως να το κάνεις με άλλο τρόπο πολύ πιο γρήγορα και σωστά. Σα να παίρνεις το σφυράκι για να σπάσεις ένα βράχο και μετά με το κομπρεσέρ να προσπαθήσεις να κρεμάσεις έναν πίνακα στον τοίχο
defacer Δημοσ. 14 Μαρτίου 2012 Δημοσ. 14 Μαρτίου 2012 Αν σε πειράζουν τέτοιες χρονικές διαφορές (μερικά δευτερόλεπτα) και έχεις τόσους πολλούς πελάτες τότα α) θα πρέπει να επενδύσεις και σε hardware και β) χρειάζεσαι επαγγελματικές και όχι φορουμικές συμβουλές.
Uberalles_gr Δημοσ. 14 Μαρτίου 2012 Μέλος Δημοσ. 14 Μαρτίου 2012 Για τις φορουμικές συμβουλές το κάνω για εμένα, να ακούσω και να ανταλλάξουμε ιδέες. Θέλετε να βοηθήσετε καλώς, δεν θέλετε πάλι καλώς. Συζήτηση κάνουμε για κάτι που αγαπάμε και μας αρέσει. Την λύση με php την έχω βρει αλλά δεν με ικανοποιεί σε αριθμό χρηστών. Όσον αφορά, την επαγγελματική συμβουλή, είναι με κάποια γλώσσα π.χ. Java που υποστηρίζει multithreading και με αυτό τον τρόπο μάλλον θα λυθεί το πρόβλημα. @greeker ωραίο το σενάριο που είπες σαν παράδειγμα και κάτι παρόμοιο το έχω λύσει με το να διαβάζει ο κάθε χρήστης xml ας πούμε με την ροή του αγώνα. Εγώ το έχω κάνει με μετοχές και πως αλλάζουν.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα