文档章节

开发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
spring中的异步事件

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

LYQ1990
2016/09/07
15
0
在Andoid中如何使用RxJava 2进行多线程编程?

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

Aritra Roy
2017/12/28
0
0
OpenStack 通用设计思路 - 每天5分钟玩转 OpenStack(25)

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

CloudMAN
2016/04/25
388
1
如何正确使用Espresso来测试你的Android程序

UI测试在Android平台上一直都是一个令人头痛的事情, 由于大家平时用的很少, 加之很多文档的缺失, 如果很多东西从头摸索,势必踩坑无数. 自Android24正式淘汰掉了InstrumentationTestCase(位于...

圣骑士wind
09/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

启动线程以及安全终止线程

启动 使用start()方法可以启动线程。 start()方法的含义是告知线程规划器线程已初始化完毕,可以分给这个线程时间片了(执行run()方法)。 安全终止线程 示例代码 import java.util.concurr...

karma123
32分钟前
1
0
Python+OpenCV 图像风格迁移(模仿名画)

现在很多人都喜欢拍照(自拍)。有限的滤镜和装饰玩多了也会腻,所以就有 APP 提供了模仿名画风格的功能,比如 prisma、versa 等,可以把你的照片变成 梵高、毕加索、蒙克 等大师的风格。 这...

crossin
36分钟前
1
0
karabiner json语法

karabiner json语法 to_if_alone 如果同时制定了to, 那么to对应的key必须是非可见字符,例如control,shift或者command, 为什么呢? If to events are specified, to events are released befo...

黄威
37分钟前
1
0
学习设计模式——工厂方法模式

1. 认识工厂方法模式 1. 功能:定义一个用于创建对象的接口,让子类决定实例化哪一个类,该模式使一个类的实例化延迟到其子类中。 2. 组织结构: Product: 定义工厂方法中用来创建对象的接口...

江左煤郎
38分钟前
1
0
常用的大数据技术有哪些?

大数据技术为决策提供依据,在政府、企业、科研项目等决策中扮演着重要的角色,在社会治理和企业管理中起到了不容忽视的作用,很多国 家,如中国、美国以及欧盟等都已将大数据列入国家发展战...

董黎明
40分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部