logplus/Workflow/WFEngine/WorkflowEngine/include/WorkflowHelper.h

108 lines
3.0 KiB
C
Raw Normal View History

2026-01-16 17:18:41 +08:00
#ifndef PAI_FRAME_WORKFLOWENGINE_WORKFLOW_HELPER_H
#define PAI_FRAME_WORKFLOWENGINE_WORKFLOW_HELPER_H
#include "WorkFlowFile.h"
#include "JobCreater.h"
#include <string>
#include <set>
using namespace std;
namespace pai{
namespace workflow {
/**
* @brief
*/
struct JobInfo
{
std::string workflowName;
std::string jobId;
pai::ios::job::JobStatus state;
JobInfo():workflowName(), jobId(), state()
{
}
};
/**
* @brief
*/
struct TimeMonitorInfo
{
//工作流名称
string jobName;
//数据输出路径
string dataFilePath;
//实时监控模块的信息
string monitorModuleName;
int monitorModuleId;
//被监控模块的信息
int monitorColor;
int index;
int monitoredStepID;
string monitoredModuleName;
};
/**
* WorkflowHelper just something stuff for workflow
*/
class PAI_WORKFLOWENGINE_EXPORT WorkflowHelper {
public:
WorkflowHelper();
virtual ~WorkflowHelper();
/**
* @brief CWorkFlowFile对象至jsonfilename文件
* @param jsonfilename
* @param file
* @return truefalse
*/
bool SaveWorkflow(const std::string& jsonfilename, CWorkFlowFile* file);
/*
* 使使
* CWorkFlowFile中的监控模块没有connection链接
* connection
*
*/
std::string GetWorkflowJson(CWorkFlowFile* file) const;
/**
* @brief ()
* @param[in] jobInfo
* @param[in/out] errorMsg
* @pre errorMsg
* @return truefalse
*/
bool Submit(JobSubmitInfo *jobInfo, string &errorMsg);
/**
* @brief jobId获取实时监控模块的数据信息,
* @param jobId ID
* @return
*/
static vector<TimeMonitorInfo> GetTimeMonitorInfos(const pai::ios::job::JobID& chainId);
private:
WorkflowHelper(const WorkflowHelper &);
WorkflowHelper & operator=(const WorkflowHelper &);
void InsertRunningDataRecords(const set<string> &dataPaths);
void DelRunningDataRecords(const set<string> &dataPaths);
void UpdateJobId2RunningDataRecord(const set<string> &dataPaths, const long long &jobId);
/**
* @brief Id保存到工作流编译临时目录
* @param jobid ID
* @param strCompileTmpDir
*/
void SaveJobIdToLocalCompileTmp(const std::string& jobid,std::string strCompileTmpDir);
private:
JobInfo jobinfo;
};
}
}
#endif