Distribution_Service/Server/Task/PushFlowTask.cpp
2025-12-05 16:46:23 +08:00

56 lines
1.3 KiB
C++

#include "PushFlowTask.h"
#include "BS_Log.h"
#include "TaskInfo.h"
PushFlowTask::PushFlowTask(const int TaskID) {
this->TaskID = TaskID;
}
void PushFlowTask::start() {
this->Flag = true;
this->Flag_t = true;
const auto Info = TaskInfo::getData(TaskID);
if (Info) {
AllocatorInfo AllInfo;
AllInfo.TaskID = Info->TaskID;
AllInfo.Terms = Info->Terms.values();
taskAllocator.Init(AllInfo);
bool F = taskAllocator.Start();
TaskInfo::thread_pool.AddTask(&PushFlowTask::run, this);
}
}
void PushFlowTask::stop() {
this->Flag = false;
taskAllocator.Stop();
while (this->Flag_t){
CTL::Thread::SleepMS(1);
}
}
void PushFlowTask::addBuffer(const CTL::ByteArray &buffer) {
taskAllocator.AddBuffer(buffer);
}
void PushFlowTask::addTID(const int ID) {
taskAllocator.AddTerm(ID,{});
}
void PushFlowTask::removeTID(const int ID) {
taskAllocator.RemoveTerm(ID,{});
}
void PushFlowTask::run() {
BS_Log::Log("PushFlowTask::run Start TaskID: {}",TaskID);
while (Flag) {
const auto task = TaskInfo::getData(TaskID);
if (task) {
task->BitstreamHeartbeat();
}
sleep.SleepMillisecond(std::chrono::milliseconds(5 * 1000));
}
this->Flag_t = false;
BS_Log::Warning("PushFlowTask::run Stop TaskID: {}",TaskID);
}