Я создаю файлы powerpoints через Apache Poi в приложении XPages.Как я могу ускорить свой Xagent?
На xpage У меня есть контроль повтора, каждая строка в повторе отображает кнопку, которая инициирует «xagent», который выполняет задание (SSJS).
<xp:button id="button7" value="Download">
<xp:eventHandler event="onclick" submit="true"
refreshMode="norefresh">
<xp:this.action><![CDATA[#{javascript:sessionScope.docId = obj.unid;
sessionScope.slideType = "TITLE_AND_CONTENT";
sessionScope.fieldList = ["refName","refSub","refStrength","refWeakness"];
context.redirectToPage("StreamPresentation.xsp");}]]></xp:this.action>
</xp:eventHandler></xp:button>
Я заметил, что для каждого экспорта требуется некоторое время для экспорта. Вот некоторые «данные о времени» из журнала:
2016-09-26 16:57:05 HTTP JVM: time:2016-09-26 16:57
2016-09-26 16:57:05 HTTP JVM: docId:6AD84C823BD8A52FC125803A0051BE49
2016-09-26 16:57:38 HTTP JVM: time:2016-09-26 16:57
2016-09-26 16:57:38 HTTP JVM: docId:660E0CC12C3E1046C1258039006AA394
2016-09-26 16:57:58 HTTP JVM: time:2016-09-26 16:57
2016-09-26 16:57:58 HTTP JVM: docId:C8DD8933E26057C3C1258039006A3ED0
Как ускорить процесс?
Моего xagent код выглядит несколько, как следует:
importPackage(java.lang);
importPackage(org.apache.poi.xslf.usermodel);
//getting sessionvariables
var sessSlide = sessionScope.slideType;
var docId = sessionScope.docId;
print("time:" + @Now());
print("docId:" + docId);
var sessFields = sessionScope.fieldList;
var doc:NotesDocument;
doc = database.getDocumentByUNID(docId);
var ppt: XMLSlideShow = new XMLSlideShow();
/*
* creating slides here...
/*
//The Faces Context global object provides access to the servlet environment via the external content
var extCont = facesContext.getExternalContext();
//The servlet's response object provides control to the response object
var pageResponse = extCont.getResponse();
//Get the output stream to stream binary data
var pageOutput = pageResponse.getOutputStream();
//Set the content type and headers
pageResponse.setContentType("application/vnd.openxmlformats-officedocument.presentationml.presentation");
pageResponse.setHeader("Cache-Control", "no-cache");
pageResponse.setHeader("Content-Disposition", "inline; filename=" + fileName);
ppt.write(pageOutput);
pageOutput.flush();
pageOutput.close();
facesContext.responseComplete();
более конкретные цифры, сколько времени требуется для запуска xagent после друг друга? в моем случае у меня есть вход и выходной поток. –
Все факторы, влияющие на него. Зависит от того, насколько занят ваш сервер. Вы можете - используя Ajax запускать их параллельно - если вы не зависите от переменных сеанса – stwissel