Вы не можете передать исключение обратно из исполняемого файла в клиентское приложение HPC, когда вы используете пакетный планировщик. Если достаточно знать, что одно из заданий или заданий, поставленных в очередь, не выполнено, вы можете удерживать объект SchedulerJob и добавить обратный вызов к событию OnJobState или OnTaskState. Всякий раз, когда ваша работа (или задача в этой работе) меняет состояние, вы получаете в своем обратном вызове информацию о задании / задании и изменении состояния; затем вы можете проверить, было ли состояние изменено на «Сбой», и действовать в соответствии с этой информацией.
Чтобы пометить задачу или задание как «Сбой», необходимо иметь исполняемый файл выхода с ненулевым кодом выхода. Если вам нужны подробности о фактическом исключении, лучшее, что вы можете сделать, это распечатать его на стандартный вывод.
Если вам действительно нужны все детали исключений, альтернативой может быть использование инфраструктуры SOA для ваших вычислений.
Преимущества будут:
ваши вычислительные запросы выглядят как WCF
вызовы методов
вы получите подробные исключения, когда
ваш код выбрасывает
вы можете использовать отладчик SOA
расширение для Visual Studio для отладки
ваш код
Недостатками будут:
- Более сложное написание и развертывание приложения, начиная с существующей кодовой базы.
Вот несколько ресурсов, с которых можно начать (поиск «Windows HPC SOA» должен дать вам гораздо больше):
Документация по MSDN SOA