Open nickyat opened 4 months ago
fix_race_condition
Исправил race condition
https://github.com/DendyPol/WalletOperations
Отправлено с iPhone
25 июня 2024 г., в 23:52, Николай Яцуков @.***> написал(а):
Проверка в 1 поток
Создание кошелька
curl -X POST http://127.0.0.1:8080/api/v1/wallet/create --header "Content-Type: application/json" 10640103-477e-444c-8e2e-b8c8512804ad Проверка баланса кошелька
echo "Баланс:" && curl http://127.0.0.1:8080/api/v1/wallet/10640103-477e-444c-8e2e-b8c8512804ad && echo Баланс: 0.00 Проводим в один поток 10000 пополнений по 1
echo '{"walletId":"10640103-477e-444c-8e2e-b8c8512804ad","operationType":"DEPOSIT","amount":1}'>/tmp/d.json ab -c 1 -n 10000 -T 'application/json' -p /tmp/d.json http://127.0.0.1:8080/api/v1/wallet ... Баланс: 10000.00 Проводим в один поток 9999 расходов по 1
echo '{"walletId":"10640103-477e-444c-8e2e-b8c8512804ad","operationType":"WITHDRAW","amount":1}'>/tmp/w.json ab -c 1 -n 9999 -T 'application/json' -p /tmp/w.json http://127.0.0.1:8080/api/v1/wallet ... Баланс: 1.00 Результат 10000-9999=1 ОК
Проверка в несколько потоков
Проводим в 10 потоков 10000 пополнений по 1
echo '{"walletId":"10640103-477e-444c-8e2e-b8c8512804ad","operationType":"DEPOSIT","amount":1}'>/tmp/d.json ab -c 10 -n 10000 -T 'application/json' -p /tmp/d.json http://127.0.0.1:8080/api/v1/wallet ... Баланс: 1113.00 FAIL: ожидался баланс в 10000
Проводим в 10 потоков 1112 расходов по 1
echo '{"walletId":"10640103-477e-444c-8e2e-b8c8512804ad","operationType":"WITHDRAW","amount":1}'>/tmp/w.json ab -c 10 -n 1112 -T 'application/json' -p /tmp/w.json http://127.0.0.1:8080/api/v1/wallet ... Баланс: 999.00
FAIL: ожидался баланс в 1
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you are subscribed to this thread.
Проверка в 1 поток
Создание кошелька
Проверка баланса кошелька
Проводим в один поток 10000 пополнений по 1
Проводим в один поток 9999 расходов по 1
Результат 10000-9999=1 ОК
Проверка в несколько потоков
Проводим в 10 потоков 10000 пополнений по 1
FAIL: ожидался баланс в 10000
Проводим в 10 потоков 1112 расходов по 1
FAIL: ожидался баланс в 1