logplus/Workflow/WFEngine/WorkflowEngine/include/JobCreater.h
2026-01-16 17:18:41 +08:00

73 lines
1.8 KiB
C++

/*
* JobCreater.h
*
* Created on: Mar 24, 2015
* Author: dev
*/
#ifndef PAI_FRAME_WORKFLOWENGINE_JOBCREATER_H_
#define PAI_FRAME_WORKFLOWENGINE_JOBCREATER_H_
#include "Job.h"
#include "Workflow.h"
#include "WorkFlowFile.h"
#include "GenerateInfo.h"
#include "WorkflowJob.h"
#include "WorkflowResourceMgr.h"
#include <string>
using namespace std;
namespace pai{
namespace workflow{
struct JobSubmitInfo
{
long long m_ChainId;
string m_User;
string m_JobName;
string m_QueueName;
pai::ios::job::WorkflowPtr m_Workflow;
pai::ios::job::JobPriority m_Priority;
JobSubmitInfo():
m_ChainId(-1), m_JobName(""), m_User(""), m_Workflow(), m_Priority(), m_QueueName("")
{}
};
class JobCreater
{
public:
JobCreater();
virtual ~JobCreater();
virtual void Create(CWorkFlowFile *workflow, JobSubmitInfo *submitInfo) = 0;
virtual pai::ios::job::JobPtr GetFirstJob() = 0;
virtual pai::ios::job::JobPtr GetLastJob() = 0;
vector<pai::ios::job::JobPtr>& GetJobs();
protected:
pai::ios::job::JobPtr CreateJob(JobSubmitInfo *submitInfo, CGenerateInfo *generateInfo);
void AddJob(pai::ios::job::JobPtr job);
string GetNeedDelFilesStr(vector<string> &seisFiles);
string GetNeedDelFilesStr(vector<string> &seisFiles, vector<string> &splitFiles);
private:
void SaveJson2CompileDir(const string &json, const SWorkflowResource &env);
void GenerateAndCompileCppFile(CGenerateInfo *info, const SWorkflowResource &env);
void CopyDebugFiles2CompilerTmp(const SWorkflowResource &env);
void CreateWorkflowJar(const SWorkflowResource &env);
JobCreater(const JobCreater &creater);
JobCreater& operator=(const JobCreater &creater);
private:
// CWorkflowResourceMgr *m_ResourceMrg;
vector<pai::ios::job::JobPtr> m_Jobs;
};
}
}
#endif /* PAI_FRAME_WORKFLOWENGINE_WORKFLOWSUBMITTER_H_ */