Skip to content

Commit

Permalink
test: 동시성 테스트 코드 수정
Browse files Browse the repository at this point in the history
  • Loading branch information
seungh1024 committed May 16, 2024
1 parent 2bc133d commit 385b5f4
Showing 1 changed file with 31 additions and 30 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

import org.c4marathon.assignment.bankaccount.entity.MainAccount;
import org.c4marathon.assignment.bankaccount.entity.SavingAccount;
import org.c4marathon.assignment.bankaccount.message.util.RedisOperator;
import org.c4marathon.assignment.bankaccount.repository.MainAccountRepository;
import org.c4marathon.assignment.bankaccount.repository.SavingAccountRepository;
import org.c4marathon.assignment.bankaccount.service.MainAccountService;
Expand Down Expand Up @@ -49,6 +50,9 @@ public class MoneySendConcurrencyTest {
@Qualifier("depositExecutor")
ThreadPoolTaskExecutor executor;

@Autowired
RedisOperator redisOperator;

private Member[] member;
private MainAccount mainAccount;
private SavingAccount savingAccount;
Expand Down Expand Up @@ -200,16 +204,15 @@ void concurrency_send_to_other_account_with_same_condition() throws InterruptedE
countDownLatch.await();
executorService.shutdown();

// long start = System.currentTimeMillis();
// // 입금 로직은 백그라운드에서 진행되니 해당 작업이 완료될 때까지 기다린다.
// while (executor.getActiveCount() != 0) {
// long now = System.currentTimeMillis();
// // 어떤 문제로 영원히 executor에 있을 수 있으니 10초 뒤엔 반복문을 탈출한다.
// if ((now - start) / 1000 > 10) {
// break;
// }
// }
Thread.sleep(10);
long start = System.currentTimeMillis();
// 입금 로직은 백그라운드에서 진행되니 해당 작업이 완료될 때까지 기다린다.
while (executor.getActiveCount() != 0) {
long now = System.currentTimeMillis();
// 어떤 문제로 영원히 executor에 있을 수 있으니 10초 뒤엔 반복문을 탈출한다.
if ((now - start) / 1000 > 10) {
break;
}
}

MainAccount resultMainAccount1 = mainAccountRepository.findById(mainAccountPk[0]).get();
MainAccount resultMainAccount2 = mainAccountRepository.findById(mainAccountPk[1]).get();
Expand Down Expand Up @@ -262,16 +265,15 @@ void concurrency_send_to_other_account_with_different_condition() throws Interru
countDownLatch.await();
executorService.shutdown();

// long start = System.currentTimeMillis();
// // 입금 로직은 백그라운드에서 진행되니 해당 작업이 완료될 때까지 기다린다.
// while (executor.getActiveCount() != 0) {
// long now = System.currentTimeMillis();
// // 어떤 문제로 영원히 executor에 있을 수 있으니 10초 뒤엔 반복문을 탈출한다.
// if ((now - start) / 1000 > 10) {
// break;
// }
// }
Thread.sleep(10);
long start = System.currentTimeMillis();
// 입금 로직은 백그라운드에서 진행되니 해당 작업이 완료될 때까지 기다린다.
while (executor.getActiveCount() != 0) {
long now = System.currentTimeMillis();
// 어떤 문제로 영원히 executor에 있을 수 있으니 10초 뒤엔 반복문을 탈출한다.
if ((now - start) / 1000 > 10) {
break;
}
}

MainAccount resultMainAccount1 = mainAccountRepository.findById(mainAccountPk[0]).get();
MainAccount resultMainAccount2 = mainAccountRepository.findById(mainAccountPk[1]).get();
Expand Down Expand Up @@ -324,16 +326,15 @@ void concurrency_send_to_one_account_with_different_condition() throws Interrupt
countDownLatch.await();
executorService.shutdown();

// long start = System.currentTimeMillis();
// // 입금 로직은 백그라운드에서 진행되니 해당 작업이 완료될 때까지 기다린다.
// while (executor.getActiveCount() != 0) {
// long now = System.currentTimeMillis();
// // 어떤 문제로 영원히 executor에 있을 수 있으니 10초 뒤엔 반복문을 탈출한다.
// if ((now - start) / 1000 > 10) {
// break;
// }
// }
Thread.sleep(10);
long start = System.currentTimeMillis();
// 입금 로직은 백그라운드에서 진행되니 해당 작업이 완료될 때까지 기다린다.
while (executor.getActiveCount() != 0) {
long now = System.currentTimeMillis();
// 어떤 문제로 영원히 executor에 있을 수 있으니 10초 뒤엔 반복문을 탈출한다.
if ((now - start) / 1000 > 10) {
break;
}
}

MainAccount resultMainAccount1 = mainAccountRepository.findById(mainAccountPk[0]).get();
MainAccount resultMainAccount2 = mainAccountRepository.findById(mainAccountPk[1]).get();
Expand Down

0 comments on commit 385b5f4

Please sign in to comment.