2016-06-11 2 views
0

Я работаю над приложением, которое должно отправить HTTP-запрос. Приложение должно отправить 5 запросов для 100 000 пользователей за 1 день. Я использую Spring MVC, и я думаю, что использовать потоки, чтобы сделать этот запрос HTTPjava 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

Я не знаю, что я должен использовать для этой задачи ... Я читал о Весенняя интеграция, но я не уверен, что я должен ее использовать. Как я могу решить эту задачу?

+0

Hi max вы можете использовать планировщик для этой задачи, так как он очень легко настраивается –

ответ

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).

Смежные вопросы