python webframework+[a]同步任务;长轮询:不是Djang

2024-03-29 00:31:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要创建一个项目,它有一个web前端来管理同步任务执行(ala fabric)、异步任务(AMQP)和长轮询/ajax,用于以表格形式查看结果和队列/大型、频繁更改的数据集(请考虑tail -f syslog)。我有一个现有的Python代码库,用于许多特定于实现的东西。在

在查看了大量现有框架之后,显而易见的答案似乎是Django+celeri。然而,我并不想“学习Django”,也不需要95%的功能。我只需要简单的auth,也许sqlalchemy,easy ajax,amqp,xmlrpc可能会有帮助。在

我会考虑使用Mongrel2,但我更倾向于使用RabbitMQ而不是0MQ(出于一些特定于实现的原因)。在

我最初花了很多时间学习Twisted,最后从中得到了几百个有用的LOC,但是我发现我扭曲了太多的平台代码,不适合它的回调模型。实际上,它“符合法案”非常好(除了它自己的amqp实现),但它是如此令人沮丧,我经历了太多的代码迭代(每一次“扭曲的ahahh时刻”一次),它是100%的。在

有人能帮我渡过泥潭吗?龙卷风?塔架?休息?金字塔?瓶?瓶子?樱桃皮?Web2py?贴纸机/Webob?还有别的事吗?在

编辑:

明确地说,与RabbitMQ(或另一个amqp提供者)的集成是最重要的,也是问题的症结所在。在


Tags: 数据项目django代码webamqp队列rabbitmq
3条回答

一些建议。在

CherryPy是一个很好的底层框架。它没有提供很多功能,但是它提供了一个非常简单的系统,可以将http请求映射到函数调用。在

web.py是另一个非常轻量级且易于使用的框架。它比CherryPy更全面,包括模板和其他特性。在

如果您的需求非常简单,那么普通的wsgi不是一个糟糕的选择。做简单的事情要比CherryPy或网页.py. WSGI是最小的公分母,现在大多数web框架都是在它的基础上构建的。在

我对python web框架没有全面的了解,但只想分享我对其中两个框架的看法:

  • 这个瓶子很轻,很好用。如果你想学一些简单易用的东西,那可能是正确的选择。我用它在本地运行的非常简单的前端应用程序,我非常喜欢它。

  • Tornado在我看来是一个非常好的实时web应用程序的非阻塞服务器。与tornadio结合使用,ajax长轮询非常简单。然而,它可能比瓶子更难学。我建议你看看tornadio文件夹中的聊天应用程序。

我希望有帮助

如果你打算长期使用AMQP,那么我会避免使用Celery,因为他们使用AMQP的方式非常怪异,这表明开发人员不了解AMQP模型。在

bottle是一个很好的框架,用于组装RESTful应用程序(我用它来创建模拟服务器进行测试),如果你已经有了完成实际工作的代码,你可能会惊讶于瓶子应用程序有多短。在

我目前正在使用RabbitMQ构建Python应用程序,并通过kombu使用amqplib。我最初选择kombu,以防我想交换库并使用pika或其他东西,但现在我希望我刚使用amqplib,并在此基础上构建一个适当的Pythonic AMQP模型。在

一定要花点时间在RabbitMQ网站上阅读一些关于AMQP的博客和幻灯片演示文稿,否则您将无法真正理解AMQP模型,从而使事情变得更加困难。在

请不要使用xmlrpc,除非必须与其他应用程序对话。瓶子使简单的RESTful应用变得如此简单,以至于XMLRPC只是不必要的复杂性。在

相关问题 更多 >