Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
When you subscribe to job events, you must implement the handler associated with the event. If you subscribe to the OnJobState event, implement the JobStateHandler delegate. If you subscribe to the OnTaskState event, implement the TaskStateHandler delegate. For an example that shows how to subscribe to the events, see Creating and Submitting a Job.
The following C# example shows how to implement the handlers.
// Implements the delegates for the SchedulerJob events
private static void JobStateCallback(object sender, IJobStateEventArg args)
{
IScheduler scheduler = null;
ISchedulerJob job = null;
Console.WriteLine("JobStateCallback: Job state is " + args.NewState);
if (JobState.Canceled == args.NewState ||
JobState.Failed == args.NewState ||
JobState.Finished == args.NewState)
{
manualEvent.Set();
}
else
{
try
{
scheduler = (IScheduler)sender;
job = scheduler.OpenJob(args.JobId);
// TODO: Do something with the job
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}
private static void TaskStateCallback(object sender, ITaskStateEventArg args)
{
IScheduler scheduler = null;
ISchedulerJob job = null;
ISchedulerTask task = null;
Console.WriteLine("TaskStateCallback: State for task {0} is {1}", args.TaskId.ToString(), args.NewState);
if (TaskState.Finished == args.NewState ||
TaskState.Failed == args.NewState)
{
try
{
scheduler = (IScheduler)sender;
job = scheduler.OpenJob(args.JobId);
task = job.OpenTask(args.TaskId);
Console.WriteLine("Output from task:\n" + task.Output);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}