我正在尝试为 HPC 集群创建一个简单的 WCF/SOA 应用程序,但我不确定 HPC 是否提供将 SOA 响应链接到生成它的任务的方法。
按照我得到的教程,我创建了将任务提交到集群的代码,如下所示:
using (var proxy = new BrokerClient<WcfMathService.IMath>(session, binding)){
...
proxy.SetResponseHandler<WcfMathService.RunTaskResponse>(doSubmit_ServiceCallback, m_signal);
...
proxy.SendRequest(new WcfMathService.RunTaskRequest(i, args.taskTime, args.taskFailureChance));
使用 SendRequest 立即获取任务 ID 时会很有用,但我不知道从哪里获取它,BrokerClient 似乎也不知道。
稍后,在我的回调代码中,我可以获得一个从服务任务返回的整数数组: int[] r = response.Result.RunTaskResult;
但同样,从响应中我不知道如何猜测生成它的任务。我可以在请求中传递一个标识符,然后在结果数组中再次将其传递回来,但这不是很优雅,并且如果任务因未处理的异常而崩溃,我不知道哪个任务失败了。
我不得不承认,我对如何使用 HPC 集群进行适当的任务管理感到很困惑。