J'ai donc un procss d'arrière-plan que j'ai besoin d'exposer/contrôler en tant que service web. J'ai enveloppé le processus pour être en mesure d'accepter les commandes via un tuyau, mais maintenant j'essaie de savoir comment le contrôler.Python: DJango comment posséder un processus de longue durée?
Les exigences sont les suivantes:
- besoin d'être en mesure de démarrer le processus via le web
- doivent être en mesure d'envoyer cmds
- doivent être en mesure de retourner des résultats de cmds
- Le processus une fois démarré est en vie jusqu'à ce qu'il soit tué
Je pense que la question principale est comment puis-je obtenir le processus django? Propre dans le sens, garder un valide enregistrer le tuyau pour la communication future avec le processus d'arrière-plan. En ce moment est quelque chose le long des lignes (juste un exemple):
if __name__ == '__main__':
to_process_pipe, process_pipe = Pipe()
node = PFacade(process_pipe)
p.start()
to_process_pipe.send(['connect'])
print to_process_pipe.recv()
p.killed = True
p.join()
Je pense que je besoin d'une meilleure façon de pouvoir communiquer, bc Je ne sais pas comment je pourrais stocker le tuyau dans django.
Et s'il vous plaît, si vous allez répondre à l'utilisation Céleri, s'il vous plaît donnez-moi une bonne explication de comment.
Vous ne voulez jamais que Django le possède, car vous ne pouvez pas nécessairement savoir combien de processus Django vous allez exécuter. –
Oui, je suis en train de remplacer le tuyau avec une queue de céleri, je ne savais pas s'il y avait un meilleur moyen. – Nix