2016-06-11 49 views
0

我正在開發一個應用程序,它必須發送http請求。應用程序必須在1天內發送5個100 000個用戶的請求。我使用Spring MVC和我想使用線程來做到這一點http請求java spring無盡併發工作

for(int j = 0; j < 100; j++){ 

     for(int i = 0; i < 5000; i++){ 
      OrderActionThread thread = new OrderActionThread(); 
      thread.start(); 
     } 

     try { 
      Thread.sleep(1000); 
     } catch (InterruptedException e) { 
      e.printStackTrace(); 
     } 
    } 

OrderActionThread使得HTTP請求

我不知道我應該用什麼這個任務......我讀過有關Spring集成,但我不確定我應該使用它。我怎樣才能決定這個任務?

+0

您好,您可以使用調度程序執行此任務,因爲它非常容易配置 –

回答

1

不要直接使用Thread,上面的循環會創建5 000 000個線程,您很可能會用完內存,線程池最適合這麼多的線程。

而且因爲你要每天安排它,我會建議使用Executors.newScheduledThreadPool

final ScheduledExecutorService pool = Executors.newScheduledThreadPool(10); 
for(int j = 0; j < 100; j++){ 
    for(int i = 0; i < 5000; i++){ 
     pool.scheduleAtFixedRate(new OrderActionThread(), 0, 1, TimeUnit.DAYS); 
    } 
} 

以上池將使用10線程(你可以增加數),並會安排所有5個000 000任務每24小時重複一次(1TimeUnit.DAYS)。