У меня есть отложенное задание формата электронной почты тела в HTML делать в UrlFetch моей собственной области применения:URL-адрес В моем приложении для домена всегда запускается новый экземпляр. Как этого избежать?
//Format body email in HTML
final Charset UTF8_CHARSET = Charset.forName("UTF-8");
final String FORMAT_EMAIL = "http://www." + NamespaceManager.getGoogleAppsNamespace() + "/email/formatEmail";
URL url = new URL(FORMAT_EMAIL);
HTTPRequest req = new HTTPRequest(url, HTTPMethod.POST, FetchOptions.Builder.withDeadline(60.0));
req.setPayload(Utils.getPostData(map, "UTF-8").getBytes());
HTTPResponse resp = urlFetchService.fetch(req);
if (resp.getResponseCode() == HttpURLConnection.HTTP_OK)
bodyMessage = new String(resp.getContent(), UTF8_CHARSET);
//here create new task to send email
SendEmail sendEmail = new SendEmail(emailTO, nameTO, emailREPLYTO, nameREPLYTO, subject, bodyMessage);
queue.add(TaskOptions.Builder.withPayload(sendEmail));
Где пройти несколько Params в сервлет formatEmail, чтобы сделать прекрасный HTML электронную почту .. :) Этот код отлично работает, создает новую задачу push и успешно отправляет сообщение.
Проблема заключается в том, что эта задача всегда, в 100% случаев, создает новый экземпляр, даже без какого-либо доступа пользователя, чтобы сделать это сложной задачей и завершением экземпляра в конце кода.
Как этого избежать?
Если я делаю UrlFetch для внешнего домена вместо моего собственного домена, обычно GAE не создает новый экземпляр для этого ... не странно?
Это неверно. Время выполнения Java поддерживает потоки. –
My threadsafe имеет значение false, потому что я не уверен, что все мое приложение является потокобезопасным, пока ... и мой код форматирования слишком длинный и жесткий для поддержания в кодировке типа out.print (''); ' но я ценю ваше объяснение .. спасибо! – dipold
Я забыл сказать, что formatEmail является контроллером файла jsp – dipold