我想要实现的最终结果是允许服务器在建立连接时将特定任务分配给客户端。简化版本就像这样
几个笔记
起初,我打算尝试线程,但我听说python没有正确地进行线程化(是对还是错?)
然后它被认为是从python发出系统调用并记录PID。然后发送某些信号给它状态,停止,(SIGUSR1,SIGUSR2,SIGINT)。但不确定这是否有效,因为我不知道我是否可以从另一个进程捕获数据。如果可以的话,我不知道如何实现这一目标。 (stdout或套接字文件?)
对于处理此问题的最佳方法,你们会建议什么?
答案 0 :(得分:4)
使用spawnProcess生成子流程。如果您已经使用Twisted,那么这应该非常无缝地集成到您现有的协议逻辑中。
答案 1 :(得分:0)
使用Celery,一个Python分布式任务队列。它可能会做你想要的任何事情或者可以做你想做的一切,它也会处理你可能还没有考虑过的大量边缘情况(如果服务器崩溃等现有工作会发生什么)。
您可以使用像RabbitMQ这样的消息队列从其他软件与Celery通信;有关详细信息,请参阅Celery教程。
使用MySQL或PostgreSQL等数据库来存储有关任务及其结果的信息可能是最方便的,但如果您愿意,您可以设计一个不使用数据库的解决方案。