为了好玩,我正在开发一个多人纸牌游戏。我计划在一个廉价的VPS上运行它,所以部署将不得不终止该进程并用新代码重新启动它。没有负载平衡器。我不介意部署会导致几分钟的中断,但不会失去游戏状态。我想使用websockets或真正的套接字,而不是长时间轮询/RESTful。
我真的很纠结如何处理这样的场景:
void yourTurn() {
player.tell("Pick a card");
val cardChosen = player.choose("Yellow 8", "Green 5", ...); // block on player input from socket
if (isValid(cardChosen)) { ... }
}如果在player.choose上阻塞线程/协同线时发生了部署,会发生什么?或者它发生在输入被接受之后,但在验证过程中?
有什么处理这个问题的模式吗?还是举个例子?
谢谢你的帮助。
发布于 2021-05-15 21:03:47
https://softwareengineering.stackexchange.com/questions/426375
复制相似问题