[PHP] Resque ou Rediska et Redis : je rame complétement... - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : [PHP] Resque ou Rediska et Redis : je rame complétement... (/showthread.php?tid=5821) |
RE: [PHP] Resque ou Rediska et Redis : je rame complétement... - php_addict - 29-11-2011 (29-11-2011, 11:55 AM)atra27 a écrit : De toute façon je compte utiliser redis pour les traitements lourds. je ne suis pas certain de comprendre, tu compte t'y prendre comment finalement avec ta résolution d'action? déclenchement lors d'un rafraichissement de page ou en background ? il y a un truc super étrange avec redis quand on lui envois la commande SET via le port adéquat: ceci ne fonctionne pas
, il faut faire
c'est incompréhensible pour moi. source : http://petewarden.typepad.com/searchbrowser/2009/11/using-redis-on-php.html RE: [PHP] Resque ou Rediska et Redis : je rame complétement... - Sephi-Chan - 29-11-2011 (29-11-2011, 12:36 PM)php_addict a écrit :(29-11-2011, 11:55 AM)atra27 a écrit : De toute façon je compte utiliser redis pour les traitements lourds. Cette discussion n'a aucun sens. Avant de se demander comment il fait, il faudrait déjà savoir ce qu'il doit faire. (29-11-2011, 12:36 PM)php_addict a écrit : il y a un truc super étrange avec redis quand on lui envois la commande SET via le port adéquat: Désolé, je préfère la simplicité.
C'est marrant ton kiff de toujours te mettre des bâtons dans les roues. RE: [PHP] Resque ou Rediska et Redis : je rame complétement... - php_addict - 29-11-2011 (29-11-2011, 01:01 PM)Sephi-Chan a écrit : C'est marrant ton kiff de toujours te mettre des bâtons dans les roues. comme je te l'ai dis, je suis par nature extrêmement curieux, j'aime bien comprendre comment fonctionne les choses et je n'aime pas me limiter à "je clic sur un truc, ca marche, je vais pas chercher à comprendre pourquoi ca marche" ca ne te donne pas envie de comprendre pourquoi la commande SET bug quand on l'envois via la socket? vous allez rire je viens de tomber la dessus : http://www.php.net/manual/fr/book.gearman.php mais je n'arrives pas à savoir si il y a possibilité de schedulding RE: [PHP] Resque ou Rediska et Redis : je rame complétement... - Sephi-Chan - 29-11-2011 (29-11-2011, 01:33 PM)php_addict a écrit :(29-11-2011, 01:01 PM)Sephi-Chan a écrit : C'est marrant ton kiff de toujours te mettre des bâtons dans les roues. J'ai bien compris. Mais essaye de séparer tes deux activités : comprendre le queueing/scheduling d'une part, implémenter un client Redis de l'autre. Avoir deux discussions en une sur des sujets qui n'ont rien à voir, c'est assez pénible à lire. Tu peux en revanche ouvrir un topic dédié pour discuter de l'implémentation d'un client Redis. (29-11-2011, 01:33 PM)php_addict a écrit : vous allez rire je viens de tomber la dessus : http://www.php.net/manual/fr/book.gearman.php mais je n'arrives pas à savoir si il y a possibilité de schedulding Essaye de faire un effort s'il te plaît… Edit : J'ai bien conscience qu'il y a beaucoup de choses nouvelles dans cette discussion et que c'est difficile à appréhender. (25-11-2011, 01:29 AM)Sephi-Chan a écrit : (27-11-2011, 07:09 AM)Hideaki a écrit : J'ai effectué une recherche complémentaire pour tes queues et il y a plusieurs solutions possibles : AMQPQueue, Gearman, cette article http://kore-nordmann.de/blog/0098_native_job_queue.html etc (27-11-2011, 12:52 PM)Sephi-Chan a écrit : J'avais cité Gearman mais lui non plus n'est pas capable de gérer le scheduling. RE: [PHP] Resque ou Rediska et Redis : je rame complétement... - atra27 - 05-12-2011 Je suis tombé la dessus: https://github.com/kamisama/Cake-Resque Aucune idée de ce que sa donne mais vu que plus haut il y a une liste des solutions disponibles, je rajoute celle-ci pour ceux qui lirons ce sujet plus tard. Dommage que c'est pour cakePhp, je maitrise pas ce FW... J'ai pas pu tester RE: [PHP] Resque ou Rediska et Redis : je rame complétement... - php_addict - 06-12-2011 je n'utilise pas cake non plus... j'ai toujours un doute quant à l’utilité d'un job queue pour la résolution des actions en fait...car j'ai des actions qui doivent être résolues dans le futur (résolution de combats) et d'autres immédiatement (payre, envois de troupes, etc...) exemple: l'envoi de troupes est une action - je clique sur "j'envois mes troupes attaquer" - je suis rediriger vers une url du jeu, et là l'action doit avoir été résolue, et si avec un système de queue l'action est résolu après la redirection cers l'url en question ca va site être chiant pour les joueurs... RE: [PHP] Resque ou Rediska et Redis : je rame complétement... - niahoo - 06-12-2011 Le truc c'est que tu ne dois pas aller vers une page qui attend qu'un job soit terminé, sinon pourquoi utiliser une queue puisque le joueur devra là aussi subir des chargements longs (on le chouchoute un peu le joueur là non ?). Je crois que pour ces actions là, et si tu n'utilises pas ajax mais des rafraichissements de page, tu peux très bien utiliser ton code de base et les résoudre pendant le rechargement. Tu n'utiliserais plus Resque que pour ce qui se finit plus tard. L'avantage si tu utilises ajax, c'est que tu pourras tout traiter comme si ça se finissait plus tard. Mais en attendant, n'utilises Resque que pour ce que tu traites vraiment de manière asynchrone. Ou pas, hein, je sais pas. RE: [PHP] Resque ou Rediska et Redis : je rame complétement... - Sephi-Chan - 06-12-2011 (06-12-2011, 12:40 AM)php_addict a écrit : j'ai toujours un doute quant à l’utilité d'un job queue pour la résolution des actions en fait...car j'ai des actions qui doivent être résolues dans le futur (résolution de combats) et d'autres immédiatement (payre, envois de troupes, etc...) C'est parce que tu n'embrasses pas le modèle asynchrone. Reprenons ton bouton pour envoyer les troupes. On lui fait faire la même requête, mais en Ajax. Deux cas de figure selon ton jeu :
Enfin bref, avec du queueing et du scheduling, je ne vois vraiment pas comment tu peux douter de l'utilité, ou alors explique clairement pourquoi. RE: [PHP] Resque ou Rediska et Redis : je rame complétement... - php_addict - 06-12-2011 (06-12-2011, 01:04 AM)Sephi-Chan a écrit : Enfin bref, avec du queueing et du scheduling, je ne vois vraiment pas comment tu peux douter de l'utilité, ou alors explique clairement pourquoi. J'ai fait le choix que tout soit considéré comme des actions dans mon jeu, voici tout ce qui est action: - payer en ressources - action immédiate (construction de bâtiment, recrutement etc...) - demande de construction de bâtiment - action immédiate (clic sur "construire ce bâtiment") - Résolution de la construction du bâtiment - action différée - Envois de troupe - action immédiate (clique sur envoyer l'attaque) - Résolution de l'attaque - action différée, au moment où l'attaque arrive donc il y a deux type d'action, des actions immédiatement résolues et des actions différées qui seront résolues plus tard, ce qui permet d'assurer l'intégrité des données (ressources, nb de troupes, etc...), comme par exemple si quelqu'un demande un envois de troupes au moment même où attaquant arrive, ou bien si un joueur paye en ressources au moment même où il se fait piller le job schedulder correspond bien aux actions différées mais pour les actions immédiates, exemple: - J'ai 1000 troupes en réserve dans mon village - Je demande un mouvement de troupe (envois d'attaque), pour ce faire je clique sur "ENVOYER", et là l'action "envoyer troupes" doit être résolue immédiatement car après avoir cliquer sur ENVOYER je ne doit plus voir mes 1000 troupes - l'action "ATTAQUE" quant à elle sera résolue dans une heure par exemple. Donc il me semble possible qu'avec un job queue l'action "envoyer" ne soit pas résolue tout de suite (apres clic sur le submit du formulaire) et que donc que le joueur se dise: "bah...je comprends pas j'ai envoyer 1000 troupes et elles sont encore là (côté client, affichage) (alors qu'elles sont considérées comme en mouvement côté serveur) j'espère que j'ai été plus clair RE: [PHP] Resque ou Rediska et Redis : je rame complétement... - Sephi-Chan - 06-12-2011 Ça doit être l'enfer de programmer avec ta paranoia de la race condition. Actuellement, comment est-ce que tu vérifies que le joueur a assez de ressources pour construire un bâtiment ? Et comment t'assures-tu qu'il n'en a pas perdu entre le moment où tu vérifies s'il a les ressources nécessaires et celui où tu mets à jour les ressources pour payer la construction ? Après, les actions immédiates légères peuvent être faîtes de manière synchrone — c'est plus simple — mais tu perds alors la protection naturelle que ça fournissait contre tes race conditions imaginaires. |