文档章节

开发demo:如何调用scheduler异步执行

yymore
 yymore
发布于 2017/06/04 20:34
字数 200
阅读 2
收藏 0
  • RPC-API 的存在是为了快速的响应进程服务之间的调用请求。
  • PRC 调用的过程为:
graph LR
  A(api.py)-->B(rpcapi.py)    
  B(rpcapi.py)-->C(manager.py) 
  1. cinder\cinder\scheduler\rpcapi.py
class SchedulerAPI(rpc.RPCAPI):

    """省略代码"""

    def say_hello(self, ctxt):
        version = '3.0'
        cctxt = self.client.prepare(version=version)
        # cast 异步调用, call 同步调用
        # 通过cast方式的远程调用,请求发送后就直接返回了;通过call方式远程调用,需要等响应从服务器返回。
        cctxt.cast(ctxt, 'say_hello')

  1. cinder\cinder\scheduler\manager.py
class _SchedulerV3Proxy(object):
    
    """省略代码"""
    
    def say_hello(self, context):
        """Demo function. test say hello."""
        LOG.debug('===========manager say_hello==============hello,wangyue========================')
        #通知ceilmeter
        rpc.get_notifier("volume", CONF.host).info(context, '======scheduler say hello to you, wangyue======', None)

  1. 调用rpcapi
from cinder.scheduler import rpcapi

"""省略代码"""

    def say_hello(self, req):
        LOG.debug('=============say hello begin===================')
        context = req.environ['cinder.context']
        authorize(context, 'storages')
        rpc = rpcapi.SchedulerAPI()
        rpc.say_hello(context)
        return webob.Response(status_int=202)

© 著作权归作者所有

共有 人打赏支持
yymore
粉丝 0
博文 1
码字总数 200
作品 0
福州
在Andoid中如何使用RxJava 2进行多线程编程?

本文最初发布于GO-JEK的博客站点,经原作者授权由InfoQ中文站翻译并分享。 如果你还没有接触RxJava或者刚刚开始使用它的话,那么你会发现始终会有很多新东西要学习。我们在GO-JEK的App中需要...

Aritra Roy
2017/12/28
0
0
在Andoid中如何使用RxJava 2进行多线程编程?

本文最初发布于GO-JEK的博客站点,经原作者授权由InfoQ中文站翻译并分享。 如果你还没有接触RxJava或者刚刚开始使用它的话,那么你会发现始终会有很多新东西要学习。我们在GO-JEK的App中需要...

Aritra Roy
2017/12/28
0
0
spring中的异步事件

spring中的异步事件 这里讲解一下Spring对异步事件机制的支持,实现方式有两种: 1、全局异步 即只要是触发事件都是以异步执行,具体配置(spring-config-register.xml)如下: Java代码 1....

LYQ1990
2016/09/07
15
0
OpenStack 通用设计思路 - 每天5分钟玩转 OpenStack(25)

API 前端服务 每个 OpenStack 组件可能包含若干子服务,其中必定有一个 API 服务负责接收客户请求。 以 Nova 为例,nova-api 作为 Nova 组件对外的唯一窗口,向客户暴露 Nova 能够提供的功能...

CloudMAN
2016/04/25
388
1
angular2 脏检查series1-Zone.js

angular2 脏检查总述 这系列文章将介绍angular2的脏值检查是如何工作的?如何比ng1更高效?带着上述问题,让我们一起来看看angular2这禽兽(谁让它叫angular,又那么生猛)干了什么。 什么是...

诺克船长
2017/11/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

(一)软件测试专题——之Linux常用命令篇01

本文永久更新地址:https://my.oschina.net/bysu/blog/1931063 【若要到岸,请摇船:开源中国 不最醉不龟归】 Linux的历史之类的很多书籍都习惯把它的今生来世,祖宗十八代都扒出来,美其名曰...

不最醉不龟归
22分钟前
6
0
蚂蚁金服Java开发三面

8月20号晚上8点进行了蚂蚁金服Java开发岗的第三面,下面开始: 自我介绍(要求从实践过程以及技术背景角度着重介绍) 实习经历,说说你在公司实习所做的事情,学到了什么 关于你们的交易平台...

edwardGe
29分钟前
7
0
TypeScript基础入门 - 函数 - this(三)

转载 TypeScript基础入门 - 函数 - this(三) 项目实践仓库 https://github.com/durban89/typescript_demo.gittag: 1.2.4 为了保证后面的学习演示需要安装下ts-node,这样后面的每个操作都能...

durban
39分钟前
0
0
Spark core基础

Spark RDD的五大特性 RDD是由一系列的Partition组成的,如果Spark计算的数据是在HDFS上那么partition个数是与block数一致(大多数情况) RDD是有一系列的依赖关系,有利于Spark计算的容错 RDD中每...

张泽立
47分钟前
0
0
如何搭建Keepalived+Nginx+Tomcat高可用负载均衡架构

一.概述 初期的互联网企业由于业务量较小,所以一般单机部署,实现单点访问即可满足业务的需求,这也是最简单的部署方式,但是随着业务的不断扩大,系统的访问量逐渐的上升,单机部署的模式已...

Java大蜗牛
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部