![]() |
1
3
使用zookeeper或异步锁 https://www.npmjs.com/package/async-lock 是的。你最不想要的是比赛条件。 |
![]() |
2
2
一个简单但可能不如锁解决方案的数据库事务。一旦第一个工人接受作业,它将在数据库中添加一个标志。第二个工作进程本可以启动数据库事务,但由于上一个工作进程设置的标志,最终无法完成该进程。然后回滚整个事务。 |
![]() |
3
0
如果你不使用锁,你不能排除这种可能性。 节点可能是单线程的 现在 (它不是),它可能在进入下一个用户之前为一个用户提供服务(IIRC没有),但是如果您在文档中找不到它,那么它根本就不能保证。升级总是有可能改变它的工作方式。 然而,有一个解决办法。如果有一个语言特性可以保证一个资源在被锁定时会被其他实例锁定和不可用,那么它将为您提供所需的保证。 |
![]() |
AlaaKudo810 · 无法更新猫鼬中的对象 1 年前 |
![]() |
Foobar · 如何在Fastify中为请求附加“项目”密钥? 1 年前 |
![]() |
chrispytoes · 从服务器端获取登录用户 1 年前 |