Example #1
0
        static void Main(string[] args)
        {
            var paras = ResolveArguments(args);

            // 分割作业为不同的任务
            if (paras.ContainsKey("-d"))
            {
                var jobSpacePath  = paras["-jp"];
                var jobConfigPath = Path.Combine(jobSpacePath, "job.json");
                var jobConfigJson = File.ReadAllText(jobConfigPath, Encoding.UTF8);
                var jobWrapper    = JobBase.Deserialize(jobConfigJson, null);
                var demoJob       = CreateJobInstance(jobWrapper.JobClassName, jobWrapper);
                demoJob.GenerateTasks();
            }

            // 处理任务
            if (paras.ContainsKey("-p"))
            {
                if (!paras.ContainsKey("-t"))
                {
                    Console.Write("缺少任务Id");
                    return;
                }

                var taskId       = paras["-t"];
                var jobSpacePath = paras["-jp"];

                // 读取作业配置,创建当前作业的实例
                var jobConfigPath = Path.Combine(jobSpacePath, "job.json");
                var jobConfigJson = File.ReadAllText(jobConfigPath, Encoding.UTF8);
                var jobWrapper    = JobBase.Deserialize(jobConfigJson, null);
                var demoJob       = CreateJobInstance(jobWrapper.JobClassName, jobWrapper);

                // 读取任务配置,创建当前任务的实例
                var taskConfigPath = Path.Combine(jobSpacePath, "tasks", taskId, "task.json");
                var task           = JobTask.CreateInstance(taskConfigPath);
                task.Job = jobWrapper;
                task.LoadRequirement();
                demoJob.PerformTask(task);
            }

            // 合并任务
            if (paras.ContainsKey("-m"))
            {
                // 读取作业配置,创建当前作业的实例
                var jobSpacePath  = paras["-jp"];
                var jobConfigPath = Path.Combine(jobSpacePath, "job.json");
                var jobConfigJson = File.ReadAllText(jobConfigPath, Encoding.UTF8);
                var jobWrapper    = JobBase.Deserialize(jobConfigJson, null);
                var demoJob       = CreateJobInstance(jobWrapper.JobClassName, jobWrapper);

                demoJob.CollectTaskResults();
            }
        }