当前位置: 首页 > news >正文

wordpress 数据库合并优化关键词技巧

wordpress 数据库合并,优化关键词技巧,男女的做那个视频网站,品牌营销的重要性5.3.4 Finding Services Proxy Class提供类(静态)方法来查找“连接”的服务实例。由于服务实例的可用性本质上是动态的(因为它有一个生命周期),所以ara::com提供了如下两种不同的方法来实现“FindService ”: StartFindService是一个类方法,它在后台启…

5.3.4 Finding Services

Proxy Class提供类(静态)方法来查找“连接”的服务实例。由于服务实例的可用性本质上是动态的(因为它有一个生命周期),所以ara::com提供了如下两种不同的方法来实现“FindService ”:

  • StartFindService是一个类方法,它在后台启动一个连续的“FindService”活动,当服务实例的可用性发生变化时,它会通过回调通知调用者。
  • FindService是一次性调用,它在调用后返回一个可用的服务实例。

根据采用实例标识符的不同,存在两种不同的重载方式(参见第4.8.1小节):

  • 一个使用ara::com::InstanceIdentifier
  • 一个采用ara::core::InstanceSpecifier

请注意,只有技术绑定将用于查找/搜索,这些绑定是由服务接口部署形式服务实例清单中的相应服务接口配置的。

同步的一次性变体**FindService为匹配的服务实例返回一个句柄容器**(参见5.3.3小节),如果当前没有匹配的服务实例,那么这个容器也可能是空的。

与此相反,StartFindService返回一个FindServiceHandle,该句柄可通过调用StopFindService来停止正在进行的监视服务实例可用性的后台活动。

StartFindService的第一个(特定于此变体)参数是用户提供的处理函数,具有以下签名:

using FindServiceHandler = std::function<void(ServiceHandleContainer<T>, 
FindServiceHandle)>;

每当绑定检测到在对**StartFindService的调用匹配的服务实例的可用性已经改变时,它将调用用户提供的处理程序**,该处理程序具有现在可用的服务实例的句柄的更新列表。

在被调用后,StartFindService的行为与FindService相似,它将使用当前可用的服务实例触发用户提供的处理函数,这些服务实例也可能是空的句柄列表。

在初始回调之后,如果初始服务可用性发生变化,它将再次调用提供的处理程序。 请注意,ara::com用户/开发人员确实可以在用户提供的处理程序中调用StopFindService,这是显式允许的。

为此,处理程序显式获取FindServiceHandle参数。处理者不必是可重入的。这意味着,绑定实现者必须负责序列化对用户提供的处理函数的调用。

请注意,当用作FindService的返回值或FindServiceHandler的参数时,ServiceHandleContainer可以实现为分配或非分配容器,只要它满足C++编程语言的一般和序列容器要求。

5.3.4.1 Auto Update Proxy instance

无论您使用一次性的FindService还是StartFindService变体,在这两种情况下,您都会获得一个标识服务实例的句柄,然后从该句柄创建Proxy实例。但是,这里抛出2种重用的问题:

  • 如果服务实例停止运行,然后又重新运行(例如,由于一些生命周期状态变化),会发生什么情况呢?

  • 当服务实例再次可用时,服务消费者端的现有代理实例还能被重用吗?

    好消息是: ara::com的设计团队要求从绑定实现中解决以上2种重用的问题,因为这样能够简化了实现服务消费者的任务。 在基于服务的通信领域中,预计在整个系统(例如车辆)的生命周期期间,服务的提供者(服务端)和消费者(客户端)的实例由于自身的生命周期概念而频繁地启动和停止。 为了解决这个问题,ara::com的团队设计了服务发现,服务的提供者和消费者的生命周期在服务提供和(再)订阅方面受到监控! 如果一个服务消费者应用程序已经从一些FindService变量返回的句柄实例化了一个服务代理实例,可能发生的顺序如下图所示。

图片解释如下:

  • T0:服务消费者可能成功调用该代理的服务方法(根据5.3.5.2,订阅事件上的GetSubscriptionState()将返回kSubscribed)。
  • T1:通过服务发现,通知服务实例关闭。
  • T2:在Service Proxy上调用服务方法将导致kServiceNotAvailable错误,因为调用的目标服务实例不再存在。相应地,任何订阅事件上的GetSubscriptionState()将在此时返回kSubscriptionPending(参见5.3.5.2 ),即使该事件之前已经被成功订阅(kSubscribed)。
  • T3:通过服务发现通知,服务实例再次出现。Service Proxy侧的通信管理将被通知,并且将利用传输层寻址信息来静默地更新Proxy实例。图中显示了代理的传输层部分,它将颜色从蓝色更改为玫瑰色。
  • T4: Proxy实例上的服务方法调用将再次成功,服务消费者之前订阅的事件上的GetSubscriptionState()将再次返回kSubscribed

Proxy实例的如上行为,可以使客户端应用程序的实现者免于以下操作:

  • 通过GetSubscriptionState()对事件进行轮询,因为在服务实例已关闭的情况下才需要调用GetSubscriptionState()
  • 重新调用一次FindService以获得新的句柄。
  • 重新注册一个FindServiceHandler,在服务实例使用新句柄时,关闭或启动时调用它, 然后从新句柄重新创建代理实例(并重做所需的事件订阅调用)。

请注意,如果您已经注册了FindServiceHandler,那么绑定实现必须确保在调用已注册的FindServiceHandler之前对现有的Proxy实例进行“自动更新”! 这样做的原因是:当给出Proxy实例的句柄时,应该支持应用程序开发者与FindServiceHandler中的现有Proxy实例进行交互,用信号通知服务实例再次启动。 下面的代码片段显示了这种期望:

/*** Reference to radar instance, we work with,* initialized during startup*/RadarServiceProxy *myRadarProxy;void radarServiceAvailabilityHandler(ServiceHandleContainer<RadarServiceProxy::HandleType> curHandles, FindServiceHandle handle) {for (RadarServiceProxy::HandleType handle : curHandles) {if (handle.GetInstanceId() == myRadarProxy->GetHandle().GetInstanceId()) {/**This call on the proxy instance shall NOT lead to an exception, regarding service instance not reachable, since proxy instance should be already auto updated at this point in time.*/ara::core::Future<Calibrate::Output> out = myRadarProxy->Calibrate("test");// ... do something with out.}}}

http://www.mmbaike.com/news/21880.html

相关文章:

  • 网站建设最贵服务商成都seo优化外包公司
  • 网站建设栏目提纲营销型网站案例
  • 三级课题做网站网站百度
  • 郑州网站建设网站开发重庆网站seo诊断
  • Wordpress文章页面小工具优化大师使用方法
  • 响应式网站开发需要的条件免费刷粉网站推广
  • 免费网站后台管理系统html小红书关键词排名
  • 网站后台风格市场监督管理局官网入口
  • 企业商城网站建设小红书seo是什么
  • 网站维护 英语seo顾问服务公司站长
  • 写小说赚钱的网站如何优化关键词的方法
  • 模板网站开发定制安卓系统优化app
  • jsp网站开发实例sem是做什么的
  • 网站建设设计外包公司手机google官网注册账号入口
  • 100个农村电商平台手机一键优化
  • 郑州公司网站制作口碑营销案例2021
  • 简述网站开发具体流程图今日头条10大新闻
  • 网站怎么做内链中国国家培训网是真的吗
  • 备案网站名称有什么用长沙网站优化体验
  • 网站域名如何查询2023年5月份病毒感染情况
  • 重庆明建网络科技有限公司干啥的手机游戏性能优化软件
  • wordpress屏蔽谷歌蜘蛛简述什么是seo及seo的作用
  • 谷歌seo 外贸建站白酒营销策划方案
  • 批量网站建设建站工具
  • 有个新网站能提供it培训机构
  • laravel微信公众号开发推推蛙seo顾问
  • 什么是b2b和b2c英文seo推广
  • 开花店做网站长沙网站推广有哪些啊
  • wordpress手册百度整站优化
  • 红色网站建设石家庄新闻