nova中通过FixedIntervalLoopingCall实现的定时任务
来源:互联网 发布:odn网络 s r什么意思 编辑:程序博客网 时间:2024/06/06 15:37
在nova/virt/libvirt/driver.py 中通过FixedIntervalLoopingCall 实现了一个定时任务 def _wait_for_destroy(expected_domid): """Called at an interval until the VM is gone.""" # NOTE(vish): If the instance disappears during the destroy # we ignore it so the cleanup can still be # attempted because we would prefer destroy to # never fail. try: dom_info = self.get_info(instance) state = dom_info.state new_domid = dom_info.id except exception.InstanceNotFound: LOG.info(_LI("During wait destroy, instance disappeared."), instance=instance) raise loopingcall.LoopingCallDone() if state == power_state.SHUTDOWN: LOG.info(_LI("Instance destroyed successfully."), instance=instance)//通过raise 异常的方式结束time raise loopingcall.LoopingCallDone()//这里from oslo_service import loopingcall。通过loopingcall.FixedIntervalLoopingCall 就会得到一个time,这个time的回调函数同样是_wait_for_destroy timer = loopingcall.FixedIntervalLoopingCall(_wait_for_destroy, old_domid)在0.5s后启动这个time,并通过wait等待其运行结束。 timer.start(interval=0.5).wait() if kwargs['is_running']: LOG.info(_LI("Going to destroy instance again."), instance=instance) self._destroy(instance) else: # NOTE(GuanQiang): teardown container to avoid resource leak if CONF.libvirt.virt_type == 'lxc': self._teardown_container(instance)
阅读全文
0 0
- nova中通过FixedIntervalLoopingCall实现的定时任务
- nova中定时任务(periodic_task)原理分析
- 通过Spring实现定时任务
- 通过Quartz实现定时任务
- spring中通过配置文件方式实现定时任务
- java中定时任务的实现
- java中定时任务的实现
- QuartZ--Spring中定时任务的实现
- Android中定时任务的实现
- Android中定时任务的实现方法
- 通过扩展 PriorityBlockingQueue 的 take() 实现任务定时触发
- 定时任务的实现
- FixedIntervalLoopingCall
- 【JAVA】通过注解实现定时任务
- Oracle中实现定时任务
- PHP中实现定时任务
- java中实现定时任务
- Java中实现定时任务
- dubbo+zookeeper报错:com.alibaba.dubbo.rpc.RpcException: Failed to invoke the method
- oracle sqlplus连接
- 模板技术Smarty
- 你最不想错过的 2017 早期 25 个 Android 开源库
- docker-ce的安装,和镜像的配置
- nova中通过FixedIntervalLoopingCall实现的定时任务
- Java Mail发送Email总结(三)--邮件发送的综合例子
- 【转】xapian全文索引库
- 写一个函数返回参数二进制中 1 的个数
- ViewPager 从入门到带你撸个启动页之实战启动页(三)
- Java singleton(单例模式)
- qt中使用pthread的undefined错误
- TPU结构总结
- java三种方式实现字符串反转(StringBuilder类,数组和栈)