Lua 中服务器之间的共享队列

Posted

技术标签:

【中文标题】Lua 中服务器之间的共享队列【英文标题】:Shared queue between servers in Lua 【发布时间】:2022-01-03 21:54:03 【问题描述】:

我正在尝试创建一个:“搜索玩家”系统,并且我有一个在多个服务器之间共享的主表。该表包括所有准备参加比赛的球员。如何创建一个系统将随机玩家组锁定到一个单独的表中,以便其他服务器无法接触玩家? 我的主要问题是,如果两台服务器同时尝试锁定同一个玩家怎么办? 我正在为此使用 Roblox 的 MessagingService:https://developer.roblox.com/en-us/api-reference/class/MessagingService 我没有主托管服务器,也无法制作它。

TL;DR:

队列可供所有服务器使用。 每个服务器都有自己的游戏系统,也就是说,所有服务器都可以访问队列并从该队列中随机收集玩家。 如果多个服务器同时尝试收集同一个玩家,我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

我不知道在 Roblox 中是否可以跨服务器共享玩家。作为一般指导:

而不是跨服务器共享玩家表,而是按需提供该表中的 n 名玩家。这样一来,任何服务器都不能认领同一个玩家。

或者只允许一个服务器选择 n 个玩家,让其他人等待。

【讨论】:

我为此使用了 MessagingService,因此我能够跨服务器共享玩家的 ID,但我需要一个自动队列系统。不幸的是,等待不是最佳选择。而且该表可以同时为所有服务器按需提供,我只是不知道该怎么办。也许developer.roblox.com/en-us/articles/memory-store可以帮助你帮助我?这是在服务器之间共享数据的另一种方法。

以上是关于Lua 中服务器之间的共享队列的主要内容,如果未能解决你的问题,请参考以下文章

用于在两个进程之间共享数据的本地消息队列

11.python并发入门(part10 多进程之间实现通信,以及进程之间的数据共享)

python全栈开发 * 进程之间的通信,进程之间数据共享 * 180726

使用队列实现进程之间的数据共享

《Python》进程之间的通信(IPC)进程之间的数据共享进程池

在 C++ 中父进程和子进程之间共享队列