Code Snippet
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Hpc.Scheduler;
using Microsoft.Hpc.Scheduler.Properties;
using System.Threading;
namespace JobSubV2
{
class Program
{
private static ManualResetEvent jobFinishEvt = new ManualResetEvent(false);
static void Main(string[] args)
{
Scheduler scheduler = new Scheduler();
scheduler.Connect("localhost");
ISchedulerJob job = scheduler.CreateJob();
job.MinimumNumberOfNodes = 1;
job.MaximumNumberOfNodes = 1;
ISchedulerTask task = job.CreateTask();
task.CommandLine = "ComputeTask 5";
task.WorkDirectory = @"c:\tests";
job.AddTask(task);
job.OnJobState += new EventHandler<JobStateEventArg>(job_OnJobState);
scheduler.SubmitJob(job, null, null);
jobFinishEvt.WaitOne();
}
static void job_OnJobState(object sender, JobStateEventArg e)
{
Console.WriteLine("Job <{0}> has changed from state <{1}> to <{2}>",
e.JobId, e.PreviousState.ToString(), e.NewState.ToString());
if (e.NewState.Equals(JobState.Finished))
{
Console.WriteLine("Job <{0}> has finished", e.JobId);
jobFinishEvt.Set();
}
}
}
}