我正在评估PyAMF以取代我们当前的PHP (ugh) AMF服务框架,但我找不到一条关键的信息,可以让我提供一个令人信服的转换用例:
现在,只需将.php文件放到文件系统中,就可以部署新的play服务;下次访问它们时,新服务就会生效。删除服务与删除提供它的.php文件一样简单,而更新它也相当简单。我需要来自PyAMF的同样易于部署的特性。如果我们必须重写我们的安装程序来部署这些服务,这将是不可能的。
那么,我需要知道的是,PyAMF是否可以通过文件系统的方式支持新的服务发现,它是否可以通过相同的方式支持服务的升级和删除,如果是的话,设置它来实现这一点的最好方法是什么?
我对任何一种不同的服务器选项都持开放态度;我可以很容易地拥有cherrypy、django,无论它自己安装并运行什么,甚至可以使用mod_python或mod_wsgi。
发布于 2010-04-22 13:05:40
web2py包含对pyamf的支持。它的工作方式是创建如下函数
def add(a,b): return a+b然后你用域名(‘@service.amfrpc3’)来装饰它们
@service.amfrpc3('domain')
def add(a,b): return a+b您不需要重新启动web服务器或执行任何其他操作。您只需在控制器文件(定义服务的文件)中添加和删除函数,即可使用或删除服务。您还可以使用多个装饰器,使用其他协议(xmlrpc、jsonrpc、rss、csv、xml、json)提供相同的功能。
@service.xmlrpc
@service.jsonrpc
@service.amfrpc3('domain')
def add(a,b): return a+b您不需要实例化网关(与其他框架一样。所有修饰过的函数都是通过单个操作公开的,您不需要编写该操作,因为它已经存在于脚手架应用程序中(由web2py为您创建):
def call(): return service()这些函数可以访问web2py数据库抽象层(DAL)和(有一些限制) web2py身份验证机制。
您可以使用shell (emacs/vi/etc)编辑包含该函数的控制器,但也可以使用基于web2py web的集成开发环境(称为“管理”),并使用浏览器添加服务。
Web2py包含一个票务系统,因此很容易调试web服务。任何服务器端错误都会导致罚单。在管理中有一个网页,列出了所有的门票。单击其中一个,它会显示导致问题的代码和完整的回溯。
您可以导入和使用任何第三方python模块。您必须预先安装pyamf。
这在本书的第9章中有很好的记录:
http://web2py.com/book/default/section/9/2
web2py应用程序非常容易部署。一种方法是使用admin来指向并单击。另一种方法是简单地将文件从一台计算机复制到另一台计算机。没有元数据,没有安装过程(甚至不是web2py本身),没有设置,没有配置文件。后面的过程在这里有一些描述:
http://gluonframework.wordpress.com/2010/03/02/shell-only-web2py/
web2py基于WSGI。它可以在任何web服务器上运行,您可以想到(apache+mod_wsgi/mod_python/mod_proxy;lighttpd/cheorkeey/ngnix+fcgi/wsgi.py;cherrypy;etc).下面详细介绍了一些选项:
http://www.web2py.com/book/default/section/11/0
其他选项可在http://web2pyslices.com上找到
web2py还自带了自己的网络服务器Rocket,它支持https,而且速度非常快。web2py代码也可以部署在Google App Engine上。
查看web2py google群组上的活动。
发布于 2010-04-21 23:57:31
我和Django一起使用PyAMF。可能的解决方案大致如下所示:
({:SERVICE_INSTANCE})
这是一个黑客解决方案,基于这样一个事实,即您只能部署文件,而不需要任何额外的操作,如重新启动服务器。
https://stackoverflow.com/questions/2683946
复制相似问题