Skip to content

Commit c61904f

Browse files
authored
Use EOR timestamp from ECS for object validity end in synchronous QC (#2514)
QC-1270 With OCTRL-987, we should be able to retrieve EOR timestamp also on EPNs.
1 parent e4655c9 commit c61904f

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

Framework/include/QualityControl/TaskRunner.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ class TaskRunner : public framework::Task
123123
/// \brief Callback for CallbackService::Id::Start (DPL) a.k.a. RUN transition (FairMQ)
124124
void start(framework::ServiceRegistryRef services);
125125
/// \brief Callback for CallbackService::Id::Stop (DPL) a.k.a. STOP transition (FairMQ)
126-
void stop() override;
126+
void stop(framework::ServiceRegistryRef services);
127127
/// \brief Callback for CallbackService::Id::Reset (DPL) a.k.a. RESET DEVICE transition (FairMQ)
128128
void reset();
129129

Framework/src/TaskRunner.cxx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,8 @@ void TaskRunner::init(InitContext& iCtx)
9292
// registering state machine callbacks
9393
try {
9494
iCtx.services().get<CallbackService>().set<CallbackService::Id::Start>([this, services = iCtx.services()]() mutable { start(services); });
95+
iCtx.services().get<CallbackService>().set<CallbackService::Id::Stop>([this, services = iCtx.services()]() { stop(services); });
9596
iCtx.services().get<CallbackService>().set<CallbackService::Id::Reset>([this]() { reset(); });
96-
iCtx.services().get<CallbackService>().set<CallbackService::Id::Stop>([this]() { stop(); });
9797
} catch (o2::framework::RuntimeErrorRef& ref) {
9898
ILOG(Error) << "Error during initialization: " << o2::framework::error_from_ref(ref).what << ENDM;
9999
}
@@ -320,9 +320,10 @@ void TaskRunner::start(ServiceRegistryRef services)
320320
}
321321
}
322322

323-
void TaskRunner::stop()
323+
void TaskRunner::stop(ServiceRegistryRef services)
324324
{
325325
try {
326+
mActivity = o2::quality_control::core::computeActivity(services, mActivity);
326327
if (mCycleOn) {
327328
mTask->endOfCycle();
328329
mCycleNumber++;
@@ -414,7 +415,7 @@ void TaskRunner::endOfActivity()
414415

415416
auto now = getCurrentTimestamp();
416417
mTimekeeper->updateByCurrentTimestamp(now);
417-
mTimekeeper->setEndOfActivity(0, mTaskConfig.fallbackActivity.mValidity.getMax(), now, activity_helpers::getCcdbEorTimeAccessor(mActivity.mId)); // TODO: get end of run from ECS/BK if possible
418+
mTimekeeper->setEndOfActivity(mActivity.mValidity.getMax(), mTaskConfig.fallbackActivity.mValidity.getMax(), now, activity_helpers::getCcdbEorTimeAccessor(mActivity.mId));
418419

419420
mTask->endOfActivity(mObjectsManager->getActivity());
420421
mObjectsManager->removeAllFromServiceDiscovery();

0 commit comments

Comments
 (0)