45 #define NCBI_USE_ERRCODE_X ConnServ_WorkerNode
62 m_WorkerNode(worker_node),
64 m_ThreadName(worker_node->GetAppName() +
"_cm")
166 bool recycle_job_context =
false;
198 recycle_job_context =
true;
202 e.
GetMsg().find(
"job is in Canceled state") != string::npos) {
208 recycle_job_context =
true;
210 catch (exception& e) {
221 recycle_job_context =
true;
223 if (!recycle_job_context) {
226 "; will retry in " << commit_interval <<
" seconds.");
230 if (recycle_job_context) {
235 return recycle_job_context;
247 catch (exception& e) {
248 ERR_POST_X(9,
"Could not create an instance of the "
249 "job processor class." << e.what());
258 "Could not create an instance of the job processor class.");
void RequestShutdown(CNetScheduleAdmin::EShutdownLevel level)
Request node shutdown.
static CGridGlobals & GetInstance()
const string m_ThreadName
SGridWorkerNodeImpl * m_WorkerNode
CJobCommitterThread(SGridWorkerNodeImpl *worker_node)
CRef< SWorkerNodeJobContextImpl > TEntry
TCommitJobTimeline m_JobContextPool
void RecycleJobContextAndCommitJob(SWorkerNodeJobContextImpl *job_context, CRequestContextSwitcher &rctx_switcher)
virtual void * Main()
Derived (user-created) class must provide a real thread function.
CFastMutex m_TimelineMutex
TCommitJobTimeline m_Timeline
TCommitJobTimeline m_ImmediateActions
bool x_CommitJob(SWorkerNodeJobContextImpl *job_context)
CWorkerNodeJobContext AllocJobContext()
CNanoTimeout – Timeout interval, using nanoseconds.
@ eShutdownImmediate
Urgent shutdown was requested.
NetSchedule internal exception.
Worker Node Job interface.
#define ERR_POST_X(err_subcode, message)
Error posting with default error code and given error subcode.
#define LOG_POST(message)
This macro is deprecated and it's strongly recomended to move in all projects (except tests) to macro...
TErrCode GetErrCode(void) const
Get error code.
#define NCBI_THROW(exception_class, err_code, message)
Generic macro to throw an exception, given the exception class, error code and message string.
const string & GetMsg(void) const
Get message string.
void Warning(CExceptionArgs_Base &args)
virtual const char * what(void) const noexcept
Standard report (includes full backlog).
void ReturnJob(const CNetScheduleJob &job)
Switch the job back to the "Pending" status so that it can be run again on a different worker node.
void PutResult(const CNetScheduleJob &job)
Put job result (job should be received by GetJob() or WaitJob())
void Reschedule(const CNetScheduleJob &job)
Reschedule a job with new affinity and/or group information.
void PutFailure(const CNetScheduleJob &job, bool no_retries=false)
Submit job failure diagnostics.
string job_id
Output job key.
void AddReference(void) const
Add reference to object.
void RemoveReference(void) const
Remove reference to object.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
void Wait(void)
Wait on semaphore.
static void SetCurrentThreadName(const CTempString &)
Set name for the current thread.
bool TryWait(unsigned int timeout_sec=0, unsigned int timeout_nsec=0)
Timed wait.
Definition of all error codes used in connect services library (xconnserv.lib and others).
Defines NCBI C++ exception handling.
void Update(CNetScheduleJob &job)
void Remove(const CNetScheduleJob &job)
IWorkerNodeJob * GetJobProcessor()
SJobsInProgress m_JobsInProgress
unsigned m_CommitJobInterval
unique_ptr< IWorkerNodeJobFactory > m_JobProcessorFactory
CFastMutex m_JobProcessorMutex
CNetScheduleExecutor m_NSExecutor
void x_PrintRequestStop()
CDeadline m_CommitExpiration
void ResetTimeout(unsigned seconds)
CRef< CRequestContext > m_RequestContext
const CDeadline GetTimeout() const
CWorkerNodeJobContext::ECommitStatus m_JobCommitStatus
bool m_FirstCommitAttempt
static CStaticTls< IWorkerNodeJob > s_tls
static void s_TlsCleanup(IWorkerNodeJob *p_value, void *)