Answer the question
In order to leave comments, you need to log in
How to keep the sequence with asynchronous requests to the database?
Example. We have a character that can be damaged, but which restores health.
The scenario is as follows:
1. 2 health units left
2. damage 1
3. health recovery
4. урон 1
Шаги 3 и 4 были вызваны почти одновременно, но сохранение последовательности критически влияет на исход. Предположим, что восстановление происходит по довольно сложному алгоритму, где нужно учесть много факторов. Тогда перед тем, как сохранить в базу результат, с персонажа будет списан последний хп, из-за чего он умирает и игра завершается поражением.
Важно оговорить реляционные и нереляционные базы, если между ними в этом плане есть различия.
Answer the question
In order to leave comments, you need to log in
It seems to me that asynchronous work using queues is perfect for you.
For example rabbitmq
The simplest thing is to execute the 4th request in the callback of the 3rd one.
Usually, a simple numbering of requests helps.
For example, you have a table or nosql document with the code name hp_history - the history of health changes.
id| hp | action | value | timestamp
1 | 2|...|...|nnnn1
2| 1 | урон | 1 |nnn28
3| 10| лечение | 10 |nnn34
4| 9 | урон | 1 | nnn35
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question