…自述:
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
-
*添加一个取消函数来停止正在运行的任务。
这个包为分布式服务队列服务
网关(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
-
*添加一个取消函数来停止正在运行的任务。