Установка:
Я использую JavaScript API v. 2.8 от ESRI, которая сама использует dojo toolkit v. 1.6. У меня есть ArcGIS Server v. 10.1 работает на Windows в Amazon EC2.
Я могу успешно выполнить PrintTask с javascript, который отправляет JSON на мой сервер, который запускает процесс и возвращает PDF-файл в клиент-браузер. Но этот запрос является синхронным и может занять минуту или две, что приведет к тайм-ауту Heroku с ошибкой H12.
Эта проблема:
Когда я переключаю флажок [ ] Asynchronous на ON на сервере ArcGIS, моя PrintTask возвращает:
{"error":{"code":500,"message":"Error performing execute operation","details":[]}}
Я не уверен, куда идти отсюда. Есть ли у кого-нибудь примеры или опыт выполнения задачи асинхронной печати на сервере ArcGIS?
Ниже приведен javascript для printTask. Есть ли способ переписать этот javascript, чтобы он был более асинхронным или неблокирующим?
Код
(урезано для краткости)
dojo.require("esri.tasks.PrintTask");
function Print() {
var printTool = this;
this.executePrint = function(){
var params = new esri.tasks.PrintParameters();
params.map = map;
params.template = selectedTemplate;
printTask = new esri.tasks.PrintTask(printUrl, {async: true});
printTask.execute(params, printTool.printComplete, printTool.printError);
};
this.printComplete = function(result){
dojo.place("<div><a href='" + result.url + "'></a></div>", printForm, "last");
};
this.printError = function(err){
dojo.byId("printJob").innerHTML = err;
};
}