Soruyu şöyle daha detaylı açıklayacak olursam; kullanıcıdan bir dosya alıp o dosya üzerinden bazı hesaplamalar yapmam gerekiyor. Bu hesaplama işlemi dosyaya göre 15 20 dk civarında zaman alabiliyor. Bu işlemi servlet üzerinde nasıl yaparım diye araştırırken Asyn Servlet olayını öğrendim. Kodda gördüğünüz gibi bir formdan dosyayı alıp bu servlete gönderiyorum sonra Async ayarlayıp contextten executor nesnesi aldıktan sonra execute metodu ile zaman alan işlemi başlatıyorum. Ayrı bi thread olduğu için işlem bitmeden bir alt satırdan devam edip ekrana istek tamamlandı yazıyor fakat hemen bir alt satırdada bu servletten başka bir sayfaya yönlendirme yapmak istediğimde illaki başlattığım threadın bitmesini bekliyor. Bu soruyu sormaktaki amacım işlemin devam ettiğine yönelik kullanıcıya bilgi vermek. Ajax hiç kullanmadım. Bu işlemi nasıl yapabilirim ?

@WebServlet(urlPatterns="/FileUploadServlet", asyncSupported = true)
@MultipartConfig()
public class FileUploadServlets extends HttpServlet{
    private static final String UPLOAD_DIR = "exports";

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        ....
        ....
        ....
        //Async ayarlanıyor
        req.setAttribute("org.apache.catalina.ASYNC_SUPPORTED", true);
        AsyncContext asyncContext = req.startAsync();
        asyncContext.addListener(new AppAsyncListener());
        asyncContext.setTimeout(900000000);
        //Context den executor alınıyor.
        ThreadPoolExecutor executor = (ThreadPoolExecutor)req.getServletContext().getAttribute("executor");
        //Executor çalıştırılıyor.
        executor.execute(new opt(new File(uploadFilePath+File.separator+fileName), uploadFilePath));
        System.out.println("İstek tamamlandı");
        resp.sendRedirect("secondPage.html");
    }

}

soruldu: 26 Eki '14, 05:28

gurhan_kucuk's gravatar image

gurhan_kucuk
1914612
cevap kabul oranı: 0%

Bu soruya ilk cevap veren sen ol!
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×3
×1

Soruldu: 26 Eki '14, 05:28

Görüntüleme: 224 kez

Son güncelleme: 26 Eki '14, 05:28

powered by BitNami OSQA