建议:Python框架服务器/工作者队列管理(非网站)
我想请教一下,应该用哪个Python框架来实现多个“工作”电脑的协调,这些电脑是由一个中央的队列管理器来管理的。
为了说明情况,这些“工作”电脑会运行音频转换的程序(我不需要对此提供建议,因为我已经有可以独立运行的代码了)。
音频转换需要花费很长时间,我需要从一个中心位置来协调任意数量的“工作”电脑,给它们分配转换任务(比如告诉它们从哪里获取源文件,或者如何获取工作配置),同时它们还需要反馈一些额外的信息,比如转换后的音频运行时间等等。
目前,我有一个脚本可以通过网络服务调用来获取转换任务的“配置”,这个配置是基于已经在工作电脑上的源文件(我们手动将源文件复制到工作电脑上,这样就会触发转换程序)。我想改变这种方式,让我们可以根据工作电脑的可用性来分配转换任务(“嘿,你,处理这个:xxx”),理想情况下,还能根据待处理的任务来分配。
有可能在转换过程中,工作电脑会掉线(不过这种情况不太可能发生)。
所有的工作电脑都是基于Windows的,而协调器可以是Windows或Linux。
在我最初的搜索中,我发现了以下几个框架,我知道其中一些是相互依赖的:
Celery(配合RabbitMQ)
Twisted
Django
现在看来,使用一个框架而不是自己从头开始做更有意义。我有一个有限的时间框架来开发这个功能扩展。
另一个考虑是使用一个与PyQT/PySide兼容的框架,这样我可以写一个简单的用户界面来显示队列状态等等。
我知道上面的具体情况有点模糊,希望有人能给我一些建议。
再次强调:我想要的是关于哪个Python框架值得进一步研究的总体建议,以便开发一个服务器/工作电脑的“队列管理”解决方案,主要是用于非网页的活动(这也是为什么Django似乎不太合适)。
1 个回答
你觉得用pyro怎么样?它可以让你远程操作对象,你只需要一个客户端脚本来协调工作。