nsmcp::QuestionService method observeJob (protected)
<instance of nsmcp::QuestionService> observeJob record handle \ job
Defined in /usr/local/ns/tcl/nsmcp/question-service.tcl
Only caller-owned conversation handles reach this method. Read one atomic retained snapshot, never invoke tools, load evidence or run SQL.
- Parameters:
- record (required)
- handle (required)
- job (required)
- Testcases:
- No testcase defined.
Source code: set store [expr {[info exists :jobStore] ? ${:jobStore} : {}}] # Definition reload preserves existing service objects. Resolve the # current log-service store lazily when the new property is unset. if {$store eq {} && [nsf::object::exists ::nsmcp::logService]} { set store [::nsmcp::logService cget -store] } if {$store eq {}} {return $job} dict set job live true if {[catch {nsv_get $store $handle} snapshot] || ![dict exists $snapshot server] || [dict get $snapshot server] ne [dict get $record server] || ![dict exists $snapshot expires] || [dict get $snapshot expires]<=[clock seconds]} { dict set job status expired return $job } if {![dict exists $snapshot status] || [dict get $snapshot status] ni {queued running complete failed}} { dict set job live false return $job } ::nsmcp::logJobTiming snapshot {} dict set job status [dict get $snapshot status] foreach key {progress processingTime} { if {[dict exists $snapshot $key]} { dict set job $key [ns_json parse [ns_json value -- [list {} object [dict get $snapshot $key]]]] } } set occupancy [::nsmcp::logJobQueueFields $snapshot] if {$occupancy ne {}} { dict set job queueOccupancy [ns_json parse [ns_json value -- [list {} object $occupancy]]] } return $jobXQL Not present: Generic, PostgreSQL, Oracle
![[i]](/resources/acs-subsite/ZoomIn16.gif)