…自述:

ServiceGatewa的Python项目详细描述


…_自述文件:

===========


这个包为分布式服务队列服务
网关(sg)提供了一个http rest api。

概述r接口本身的反应性。

此代码库提供的不同功能如下:

*为给定基础结构上的给定服务集合提供统一的canarie rest接口。

*为基于队列的分布式进程提供网关基于
amqp和celeriy的essing框架

*一组实用程序,用于帮助向
处理队列添加新的工作线程类型。
*为工作线程/控制器实现标准消息传递方案。
*将任意参数向前传递给选定的工作线程。

*提供一个异步api来查询长时间任务的进度


*公开了将进度[0-100]传达给其他前端的方法。

*提供了评估基础设施需求的方法。


<;http://vesta.crim.ca/docs/sg/latest/>;` `.


基础设施概述
<--


此解决方案依赖于"芹菜
<;http://celeri.readthedocs.org/en/latest/index.html>;` `分布式任务队列
和"rabbitmq<;http://www.rabbitmq.com/>;"`_要分派的消息传递代理
正在处理请求。另外,rest接口使用"flask
<;http://flask.pocoo.org/>;``网络框架。


基本用法
——


>接口实例化
+++++++++++++注意:在启动应用程序之前,必须应用自己的配置
值,请参见:ref:`configuration`部分。

代码块::bash

python run_local.py--help

这个命令可以启动内置的flask web服务器。
~-d»选项以调试模式启动Web服务器。调试模式对于自动重新加载代码和堆栈跟踪转发非常有用。有关详细信息,请参阅烧瓶
文档。

。警告:

run_local/debug模式下的rest接口使用内置web服务器。
虽然此web服务器对于封闭环境很有用,但不建议将其作为生产环境中的web服务器。应注意在反向代理服务器(例如,反向代理服务器)后配置"wsgi
<;http://wsgi.readthedocs.org/en/latest/index.html>;``到生产就绪的web服务器(例如,apache<;http://httpd.apache.org/>;`)的网关或
"gunicorn<;http://gunicorn.org/>;`"作为
nginx.



TOdo::在用户指南中折叠此信息,或者至少合并
二者。

与rest api交互的一种实用方法是使用"curl
<;http://curl.haxx.se/>;`` uu命令。


在新的终端窗口中,发出以下命令:

。代码块::bash

curl http://localhost:5000/annotator/annotate\
--data urlencode doc-url=http://some.url.wav\
--data urlencode ann-doc-id=<;ann-doc-id>;\
--header"授权:<;jwt-key>;"

其中,<;jwt-key>;是jwt编码的密钥。出于测试目的,可以使用以下命令调用助手脚本
,以生成有效的jwt:

…代码块::bash

python-m vestarestpackage.jwt

对于上载到此MSS的文档
,您可以使用有效的存储文档ID,如下所示:

…代码块::bash

curl http://localhost:5000/annotator/annotate/<;storage_doc_id>;\
--data urlencode ann_doc_id=<;ann_doc_id>;--header"授权:<;jwt key>;"


,其中"annotator"是给定服务的名称和"some.url.wav"
ind指示要处理的文档的位置。然后会返回一个uuid
,并且应该在worker队列上发送一个任务请求,其中一个服务
worker可能已经使用了请求并启动了处理。

完成后,注释将通过*status*路由可用。
可以按如下方式调用*status*路由:

。代码块::bash

curl http://localhost:5000/annotator/status\?uuid=<;uuid>;

调用*annotate*路由时,如果提供了可选的ann_doc_id参数,则工作进程将在给定注释文档uuid的:ref:`annotation storage
service<;jass:jass_home>;'上发布注释。如果在尝试存储批注时发生错误
,则工作任务将失败,批注过程结果将丢失。

监控和控制任务。这个显示器叫芹菜花。在这一点上,flower的使用是完全可选的,但可能包含在运行时的进一步要求中。鲜花可以通过以下方式开始:

…代码块::bash

Celery Flower--config=<;config>;\
--broker-api=http://<;broker-url>;:<;broker-port>;/api/


,其中<;broker-url>;和<;broker-port>;应设置为指向AMQP代理。
<;config>;是Python模块p的基本名称。提供配置选项以访问代理。示例内容可能如下:

…代码块::python

broker_url='amqp://localhost//'
celeriry_result_backend='amqp://'
celeriry_task_serializer='json'
celeriry_result_serializer='json'
celeriry_accept_content=['json'

e实际使用的代理,可能与在上面的命令行中指定的提供代理api的代理不同。



应用程序配置。


有关rest api的更多信息,请参阅文档的用户指南。







打包到1.9.2

>1.8.4
----


*更新了VestarestPackage到1.9.1,并支持MonboDB。


>1.8.3
----

*修复对UTF-8中编码的工人异常的处理。

>1.8.2
----

*不需要任何参数的配置指令现在是可选的。

1.8.1
----

*修复提交JSON且不需要参数的情况=false。


1.8.0
----


*可以使用子写入进程路由的JSON正文。
*服务的配置可以包含无参数指令。
*修复CE的错误处理确定例外类型。

1.7.6
-


*可以在不同队列上多次使用任务名称。


1.7.3
-



*在wsgi调用时修复版本声明。

<1.7.2
-

*修复任意参数使用中的错误。

1.7.0
-


*任意argu未知的部分通过json中的"misc"子结构传递给worker。6.0
----

*第一个打包版本
*包外部署配置



>1.5.5
----


*http授权机制,jwt通过注释请求的头发送。
*重定向到要静态托管的文档页。lsehere
*可以处理url参数中的额外文档规范(url或存储id)




1.5.4
----

*添加一个./service/。路由以反映Canarie API要求。



1.5.3
----


*使用符合JSON LD方案的Transition 1.1.0和FaceAnalysis 1.0.0服务版本。



1.5.0
----

*错误处理完成
*统一错误代码
*更多日志
*对结果结构中的某些字段进行规范化

>1.4.0
----


*支持存储文档ID替换完整URL
*队列将在默认情况下在2小时后过期:当队列不再可用时添加过期状态
*为给定的nn_doc_id
*使用支持并发性的方法存储任务uuid


1.3.0
----


*支持ann_doc_id参数。
*新的版本控制方案。


1.1.0
-

*添加一个取消函数来停止正在运行的任务。




欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java InputStream对象在声明后关闭   java未定义名为“transactionManager”的bean重命名transactionManager   java“jar”命令何时会拒绝将类添加到java中。jar文件?   java JPA标准依赖WHERE子句   安卓中从SD卡读取文本文件时出现java错误   java直接启用类似位置的权限   使用@WebMvcTest和Mockito-BDDMockito对SpringBoot-RestController进行java测试   java JSESSIONID存储在哪里?   java jtextarea鼠标事件覆盖容器鼠标事件   java DRL无法解析动态加载的类   java是从一个方法返回多个对象的最简单方法   java自定义按钮/编辑框是否不可见?   java GUI如何在保存用户输入的同时在面板或框架之间切换   swing Java自定义JSlider不会更新   GridBagLayout中的java超过1个JPanel   java从ProjectReactor中的flux中采样除第一个元素外的所有元素   Java泛型和泛型类型   Java代码生成宽指令的jvm