此页面由 Cloud Translation API 翻译。
Switch to English

张量流:: 服务:: 装载机线束

#include <loader_harness.h>

LoaderHarness是插件的管理使用扶住和谈话的装载机 ,同时它拥有它。

摘要

它跟踪Servable的总体状态,以便Manager可以确定在什么时候进行哪些状态转换。

管理器实现还可以为每个线束添加一些其他状态。例如,经理可以在此处放置ACL或生命周期元数据。所有权由线束维护。

此类是线程安全的。

构造函数和析构函数

LoaderHarness (const ServableId & id, std::unique_ptr< Loader > loader, const Options & options)
LoaderHarness (const ServableId & id, std::unique_ptr< Loader > loader, std::unique_ptr< T > additional_state, const Options & options)
构造函数以创建具有经理需要的其他状态的线束。
~LoaderHarness ()
合法破坏当前状态是kNew,kDisabled或kError之一。

公开类型

State {
kNew ,
kLoadRequested ,
kLoadApproved ,
kLoading ,
kReady ,
kUnloadRequested ,
kQuiescing ,
kQuiesced ,
kUnloading ,
kDisabled ,
kError
}
枚举
LoaderHarness的角度以及为了使其与Manager之间进行通信的目的,底层可服务状态。

公共职能

DoneQuiescing ()
Status
将状态转换为kQuiesced,这意味着前端不再有可用的活动句柄。
Error (const Status & status)
void
将状态转换为kError并调用“ options_.error_callback”。
Load ()
Status
过渡到kLoading,委托给Servable :: Load(),然后如果Load()成功,则过渡到kReady,或者过渡到kError(并调用'options_。
LoadApproved ()
Status
过渡到kLoadApproved。
LoadRequested ()
Status
如果当前状态为kNew,则将线束的状态转换为kLoadRequested。
StartQuiescing ()
Status
将状态转换为kQuiescing,这意味着我们不想再放弃对该可服务对象的处理。
Unload ()
Status
过渡到kUnloading,委托给Servable :: Unload(),然后在完成Unload()后过渡到kDisabled。
UnloadRequested ()
Status
如果当前状态为kReady,则将线束的状态转换为kUnloadRequested。
additional_state ()
T *
获取附加状态。
cancel_load_retry ()
bool
id () const
ServableId
返回基础Servable的标识符。
loader () const
Loader *
返回指向包装好的加载器的指针。
loader_state_snapshot ()
ServableStateSnapshot< T >
返回基础Servable的当前总体状态快照。
loader_state_snapshot () const
ServableStateSnapshot< std::nullptr_t >
set_cancel_load_retry (bool value)
void
取消重试可服务对象的负载。
state ()
返回基础Servable的当前状态。
status ()
Status
此可服务项是否有任何问题。

公共静态功能

StateDebugString ( State state)
string

结构

tensorflow ::服务:: LoaderHarness ::选项

配置LoaderHarness的 选项

公开类型

 State

LoaderHarness的角度以及为了使其与Manager之间进行通信的目的,底层可服务状态。

不等同于servable_state.h中的语义可服务状态。

有效转换:kNew> kLoading> kReady> kQuiescing> kQuiesced> kUnloading> kDisabled以及any_state> kError。

物产
kDisabled

'loader _-> Unload() '已经完成。

kError

在'loader _-> Load() '期间或在线束外部发生了错误(并且已通过调用Error()报告给线束)。

kLoadApproved

servable已被批准装载,例如

已经为此预留了资源。

kLoadRequested

已要求管理员加载此可服务项。

kLoading

已调用'loader _-> Load() '。

kNew

初始状态。

kQuiesced

该可服务对象已无法使用。

kQuiescing

该可服务对象将无法使用。

kReady

'loader _-> Load() '成功。

kUnloadRequested

已要求管理员卸载此可服务对象。

kUnloading

已调用'loader _-> Unload() '。

公共职能

完成停顿

Status DoneQuiescing()

将状态转换为kQuiesced,这意味着前端不再有可用的活动句柄。

此时,我们可以卸载该对象。

要求:调用时状态为kQuiescing。否则,DCHECK失败,转换为状态kError并调用“ options_.error_callback”。

错误

void Error(
  const Status & status
)

将状态转换为kError并调用“ options_.error_callback”。

加载

Status Load()

过渡到kLoading,委托给Servable :: Load(),然后如果Load()成功,则过渡到kReady,或者过渡到kError(并调用'options_。

error_callback'),如果Load()失败。此通话可能需要很长时间。

我们根据在构造此类时设置的选项重试Servable :: Load()。我们停止重试,如果1.已达到max_num_load_retries或2.如果cancel_load()设置为true,则放弃。

要求:调用时状态为kLoadApproved。否则,DCHECK失败,转换为状态kError并调用“ options_.error_callback”。

负载批准

Status LoadApproved()

过渡到kLoadApproved。

要求:调用时状态为kLoadRequested。否则,DCHECK失败,转换为状态kError并调用“ options_.error_callback”。

负载请求

Status LoadRequested()

如果当前状态为kNew,则将线束的状态转换为kLoadRequested。

测试和更改是事务性完成的,因此可以使用此方法来确保最多可以进行一个Load()请求。

装载机线束

 LoaderHarness(
  const ServableId & id,
  std::unique_ptr< Loader > loader,
  const Options & options
)

装载机线束

 LoaderHarness(
  const ServableId & id,
  std::unique_ptr< Loader > loader,
  std::unique_ptr< T > additional_state,
  const Options & options
)

构造函数以创建具有经理需要的其他状态的线束。

开始停顿

Status StartQuiescing()

将状态转换为kQuiescing,这意味着我们不想再放弃对该可服务对象的处理。

要求:调用时状态为kUnloadRequested。否则,DCHECK失败,转换为状态kError并调用“ options_.error_callback”。

卸下

Status Unload()

过渡到kUnloading,委托给Servable :: Unload(),然后在完成Unload()后过渡到kDisabled。

要求:调用时状态为k静止。否则,DCHECK失败,转换为状态kError并调用“ options_.error_callback”。

卸载请求

Status UnloadRequested()

如果线束的当前状态为kReady,则将其状态转换为kUnloadRequested。

测试和更改是通过事务完成的,因此可以使用此方法来确保最多可以进行一个Load()请求。

附加状态

T * additional_state()

获取附加状态。

如果类型不匹配或未设置,则返回nullptr。

cancel_load_retry

bool cancel_load_retry()

ID

ServableId id() const 

返回基础Servable的标识符。

装载机

Loader * loader() const 

返回指向包装好的加载器的指针。

所有权属于此类。

loader_state_snapshot

ServableStateSnapshot< T > loader_state_snapshot()

返回基础Servable的当前总体状态快照。

loader_state_snapshot

ServableStateSnapshot< std::nullptr_t > loader_state_snapshot() const 

set_cancel_load_retry

void set_cancel_load_retry(
  bool value
)

取消重试可服务对象的负载。

这是最大的努力,它不会抢占已经发生的Load() ,而只是抢占后续调用。

如果取消重试,则可服务项将进入状态,该状态取决于在其上调用的最后一个Load() 。如果最后一个Load()成功,则它将处于状态kReady,否则处于kError。

State state()

返回基础Servable的当前状态。

状态

Status status()

此可服务项是否有任何问题。

如果state为kError,则该状态为OK。如果不能,则错误可能是在SourceSourceAdapterLoaderManager或其他地方发生的。不论起源如何,都在此报告与可服务项目有关的所有错误。

〜装载机线束

 ~LoaderHarness()

合法破坏当前状态是kNew,kDisabled或kError之一。

如果违反则检查失败。

公共静态功能

StateDebugString

string StateDebugString(
  State state
)