เทนเซอร์โฟลว์:: เสิร์ฟ:: LoaderHarness

#include <loader_harness.h>

LoaderHarness เป็นเครื่องมือที่ จัดการ การใช้งานจะยึดมั่นในและพูดคุยกับ พับ ในขณะที่มันเป็นเจ้าของมัน

สรุป

จะติดตามสถานะโดยรวมของ Servable ดังกล่าวว่า ผู้จัดการ สามารถกำหนดได้ว่าการเปลี่ยนสถานะที่จะทำให้สิ่งที่ครั้ง

การใช้งานของผู้จัดการยังสามารถเพิ่มสถานะเพิ่มเติมด้วยสายรัดแต่ละตัว ตัวอย่างเช่น ผู้จัดการอาจใส่ 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 ()
กฎหมายที่จะทำลาย iff สถานะปัจจุบันเป็นหนึ่งใน kNew, kDisabled หรือ kError

ประเภทสาธารณะ

State {
kNew ,
kLoadRequested ,
kLoadApproved ,
kLoading ,
kReady ,
kUnloadRequested ,
kQuiescing ,
kQuiesced ,
kUnloading ,
kDisabled ,
kError
}
enum
รัฐของ servable พื้นฐานจากมุมมองของ LoaderHarness และวัตถุประสงค์ของการสื่อสารระหว่างมันและเป็น ผู้จัดการ

งานสาธารณะ

DoneQuiescing ()
Status
เปลี่ยนสถานะเป็น kQuiesced ซึ่งหมายความว่าไม่มีการจัดการสดสำหรับเซิร์ฟเวอร์นี้ที่มีอยู่ในส่วนหน้า
Error (const Status & status)
void
เปลี่ยนสถานะเป็น kError และเรียกใช้ 'options_.error_callback'
Load ()
Status
การเปลี่ยนไป kLoading, ได้รับมอบหมายให้ Servable :: โหลด () แล้วเปลี่ยนทั้ง kReady ถ้า โหลด () ประสบความสำเร็จหรือ kError (และ options_ จะเรียก'
LoadApproved ()
Status
การเปลี่ยนไปใช้ kLoadApproved
LoadRequested ()
Status
เปลี่ยนสถานะของสายรัดเป็น kLoadRequested หากสถานะปัจจุบันคือ kNew
StartQuiescing ()
Status
เปลี่ยนสถานะเป็น kQuiescing ซึ่งหมายความว่าเราไม่ต้องการให้การจัดการกับ servable นี้อีกต่อไป
Unload ()
Status
การเปลี่ยนไป kUnloading, ได้รับมอบหมายให้ Servable :: ยกเลิกการโหลด () จากนั้นเปลี่ยนไป kDisabled เมื่อ ยกเลิกการโหลด () จะทำ
UnloadRequested ()
Status
เปลี่ยนสถานะของสายรัดเป็น kUnloadRequested หากสถานะปัจจุบันคือ kReady
additional_state ()
T *
รับสถานะเพิ่มเติม
cancel_load_retry ()
bool
id () const
ServableId
ส่งกลับตัวระบุของ Servable พื้นฐาน
loader () const
ส่งคืนตัวชี้ไปยังตัวโหลดที่ห่อหุ้ม
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
ไม่ว่าจะมีอะไรผิดพลาดกับ Servable นี้หรือไม่

ฟังก์ชั่นคงที่สาธารณะ

StateDebugString ( State state)
string

โครงสร้าง

tensorflow :: การให้บริการ :: LoaderHarness :: ตัวเลือก

ตัวเลือก การกำหนดค่า LoaderHarness

ประเภทสาธารณะ

สถานะ

 State

รัฐของ servable พื้นฐานจากมุมมองของ LoaderHarness และวัตถุประสงค์ของการสื่อสารระหว่างมันและเป็น ผู้จัดการ

ไม่เทียบเท่ากับสถานะที่แสดงผลได้เชิงความหมายใน servable_state.h

การเปลี่ยนที่ถูกต้อง: kNew>kLoading>kReady>kQuiescing>kQuisced>kUnloading>kDisabled เช่นเดียวกับ: any_state>kError

คุณสมบัติ
kDisabled

'รถตักดิน _-> ยกเลิกการโหลด () ' ได้เสร็จสิ้น

kError

มีข้อผิดพลาดเกิดขึ้นทั้งในระหว่าง 'รถตักดิน _-> โหลด () ' หรือภายนอกของเทียม (และมีรายงานว่าจะเทียมผ่านการเรียกไปยัง ข้อผิดพลาด () )

kLoadApproved

เซิร์ฟเวอร์ได้รับการอนุมัติสำหรับการโหลด เช่น

ทรัพยากรได้ถูกจัดสรรไว้สำหรับมัน

kLoadRequested

ผู้จัดการได้รับการร้องขอให้โหลดบริการนี้

kLoading

'รถตักดิน _-> () โหลด ' ได้รับการเรียกว่า

kNew

สถานะเริ่มต้น

kQuiesced

Servable ถูกทำให้ไม่สามารถให้บริการได้

kQuiescing

Servable จะถูกทำให้ไม่สามารถให้บริการได้

kReady

'รถตักดิน _-> โหลด () ' ได้ประสบความสำเร็จ

kUnloadRequested

ผู้จัดการได้รับการร้องขอให้ยกเลิกการโหลดเซิร์ฟเวอร์นี้

kUnloading

'รถตักดิน _-> ยกเลิกการโหลด () ' ได้รับการเรียกว่า

งานสาธารณะ

เสร็จสิ้นQuiescing

Status DoneQuiescing()

เปลี่ยนสถานะเป็น kQuiesced ซึ่งหมายความว่าไม่มีการจัดการสดสำหรับเซิร์ฟเวอร์นี้ที่มีอยู่ในส่วนหน้า

ณ จุดนี้ เราสามารถยกเลิกการโหลดวัตถุนี้

ข้อกำหนด: สถานะเป็น kQuiescing เมื่อถูกเรียก มิฉะนั้น DCHECK จะล้มเหลว เปลี่ยนเป็นสถานะ kError และเรียกใช้ 'options_.error_callback'

ข้อผิดพลาด

void Error(
  const Status & status
)

เปลี่ยนสถานะเป็น kError และเรียกใช้ 'options_.error_callback'

โหลด

Status Load()

การเปลี่ยนไป kLoading, ได้รับมอบหมายให้ Servable :: โหลด () แล้วเปลี่ยนทั้ง kReady ถ้า โหลด () ประสบความสำเร็จหรือ kError (และ options_ จะเรียก'

error_callback ') ถ้า โหลด () ล้มเหลว การโทรนี้อาจใช้เวลานาน

เราลอง Servable::Load() อีกครั้งตามตัวเลือกที่ตั้งไว้ระหว่างการสร้างคลาสนี้ เราหยุดลองอีกครั้งและยกเลิกหาก 1. เราถึง max_num_load_retries หรือ 2. หาก cancel_load() ถูกตั้งค่าเป็น true

ข้อกำหนด: สถานะเป็น kLoadApproved เมื่อถูกเรียก มิฉะนั้น DCHECK จะล้มเหลว เปลี่ยนเป็นสถานะ kError และเรียกใช้ 'options_.error_callback'

LoadApproved

Status LoadApproved()

การเปลี่ยนไปใช้ kLoadApproved

ต้องการ: สถานะคือ kLoadRequested เมื่อถูกเรียก มิฉะนั้น DCHECK จะล้มเหลว เปลี่ยนเป็นสถานะ kError และเรียกใช้ 'options_.error_callback'

LoadRequested

Status LoadRequested()

เปลี่ยนสถานะของสายรัดเป็น kLoadRequested หากสถานะปัจจุบันคือ kNew

การทดสอบและการเปลี่ยนแปลงที่ทำ transactionally ดังนั้นวิธีการนี้สามารถนำมาใช้เพื่อให้มั่นใจว่ามากที่สุดคนหนึ่ง โหลด () คำขอสามารถดำเนินการต่อ

LoaderHarness

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

LoaderHarness

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

ตัวสร้างเพื่อสร้างบังเหียนพร้อมสถานะเพิ่มเติมซึ่งผู้จัดการต้องการ

เริ่มต้นควิซซิ่ง

Status StartQuiescing()

เปลี่ยนสถานะเป็น kQuiescing ซึ่งหมายความว่าเราไม่ต้องการให้การจัดการกับ servable นี้อีกต่อไป

ต้องการ: สถานะคือ kUnloadRequested เมื่อถูกเรียก มิฉะนั้น DCHECK จะล้มเหลว เปลี่ยนเป็นสถานะ kError และเรียกใช้ 'options_.error_callback'

ยกเลิกการโหลด

Status Unload()

การเปลี่ยนไป kUnloading, ได้รับมอบหมายให้ Servable :: ยกเลิกการโหลด () จากนั้นเปลี่ยนไป kDisabled เมื่อ ยกเลิกการโหลด () จะทำ

ข้อกำหนด: สถานะเป็น kQuiesced เมื่อถูกเรียก มิฉะนั้น DCHECK จะล้มเหลว เปลี่ยนเป็นสถานะ kError และเรียกใช้ 'options_.error_callback'

UnloadRequested

Status UnloadRequested()

เปลี่ยนสถานะของสายรัดเป็น kUnloadRequested หากสถานะปัจจุบันคือ kReady

การทดสอบและการเปลี่ยนแปลงที่ทำ transactionally ดังนั้นวิธีการนี้สามารถนำมาใช้เพื่อให้มั่นใจว่ามากที่สุดคนหนึ่ง โหลด () คำขอสามารถดำเนินการต่อ

added_state

T * additional_state()

รับสถานะเพิ่มเติม

ส่งกลับค่า nullptr หากประเภทไม่ตรงกันหรือไม่ได้ตั้งค่าไว้

ยกเลิก_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
)

ยกเลิกการลองโหลดของเซิร์ฟเวอร์อีกครั้ง

นี้เป็นที่ดีที่สุดความพยายามและไม่ได้ยึดเอาเสียก่อน โหลด () ที่มีอยู่แล้วสิ่งที่เกิดขึ้นตามมาสายเท่านั้น

หากลองจะถูกยกเลิก servable ที่จะเข้าสู่รัฐขึ้นอยู่กับสุดท้าย โหลด () เรียกมัน หากสุดท้าย โหลด () ที่ประสบความสำเร็จก็จะอยู่ในรัฐ kReady อื่นใน kError

สถานะ

State state()

ส่งกลับสถานะปัจจุบันของ Servable พื้นฐาน

สถานะ

Status status()

ไม่ว่าจะมีอะไรผิดพลาดกับ Servable นี้หรือไม่

หากสถานะเป็น kError จะไม่ถือว่าใช้ได้ ถ้าไม่ได้ตกลงข้อผิดพลาดอาจเป็นสิ่งที่เกิดขึ้นใน แหล่งที่มา หรือ SourceAdapter ใน Loader ใน ผู้จัดการ , หรือที่อื่น ๆ มีการรายงานข้อผิดพลาดทั้งหมดที่เกี่ยวข้องกับการแสดงที่นี่ โดยไม่คำนึงถึงแหล่งที่มา

~สายรัดโหลด

 ~LoaderHarness()

กฎหมายที่จะทำลาย iff สถานะปัจจุบันเป็นหนึ่งใน kNew, kDisabled หรือ kError

การตรวจสอบล้มเหลวหากละเมิด

ฟังก์ชั่นคงที่สาธารณะ

StateDebugString

string StateDebugString(
  State state
)