问题标签 [multi-user]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
10482 浏览

python - 多个鼠标指针?

有没有办法分别接受来自多个鼠标的输入?我对制作多用户应用程序很感兴趣,我认为如果我可以让 2 个或更多用户拿着无线鼠标,每个用户都使用单独的鼠标箭头单独与应用程序交互,那会很棒。

这是我应该尝试将其外包给其他应用程序/驱动程序/os_magic吗?或者有没有我可以用来完成这个的库?语言不是什么大不了的事,但 C、C++ 和 Python 更可取。

谢谢 :)

编辑:

找到了这个用于 linux 的多指针工具包(它实际上是一个多指针 x 服务器): http ://wearables.unisa.edu.au/mpx/

0 投票
10 回答
3139 浏览

svn - Subversion 中的单个多用户结帐 - 可能吗?

在我们的组织中,我们有以下问题。我们希望对我们的网络树进行修订控制,但我们中的许多人希望能够更改(并签入)该树的任何文件。我们还希望所有这一切都只有一次退房,因为这棵树相当大。对于该树的某些部分,我们目前正在使用 RCS,它允许上述行为,但当然还有其他一些缺点。

有谁知道如何在 Unix 服务器上使用 Subversion 做这样的事情(可能有某种解决方法)?

0 投票
2 回答
1146 浏览

python - Python/Twisted 多用户服务器 - 什么更有效?

在 Python 中,如果我希望我的服务器在 CPU 方面能够很好地扩展,我显然需要生成多个进程。我想知道哪个更好(使用 Twisted):

A)管理进程(持有实际套接字连接的那个)将接收到的数据包放入一个共享队列(来自多处理模块的那个),工作进程将数据包拉出队列,处理它们并将结果发送回客户端。

B) 管理器进程(持有实际套接字连接的那个)启动一个延迟线程,然后调用进程池上的 apply() 函数。一旦结果从工作进程返回,管理器将结果发送回客户端。

在这两种实现中,工作进程都使用线程池,因此它们可以同时处理多个数据包(因为会有很多数据库查询)。

0 投票
3 回答
2604 浏览

concurrency - 悲观与乐观并发(锁定与反馈)

我正在使用以下标准构建应用程序:

  • 工作项目:需要用户通过网络手动工作的项目(短一页表格)
  • 多个用户工作“工作项”
  • 每个用户都有一个“工作项”队列
  • 有一个搜索允许用户查看“工作项”并将“工作项”分配给他们的队列
  • 用户可以将“工作项”从其他人的队列中分配给自己

注意:“工作项”只工作一次。这不是一个 wiki 页面,它更像是一个匹配的练习,只能由一个用户执行一次。一旦“工作项”工作完成,它就会从系统中消失(除了一些审计/报告),有点像错误跟踪系统

你认为哪个选项更好?你能引用任何支持你观点的主流应用程序吗?

选项1:

  • 当用户 A 去查看或工作“工作项”时,“工作项”被锁定。
  • 当用户 A 打开“工作项”后,其他用户进入“工作项”时,他们将只能看到“工作项”。他们不能写。
  • 锁定在 n 分钟后到期,此时另一个用户可以锁定“工作项”。

选项 2:

  • 任何用户都可以在不锁定的情况下拉起“工作项”。
  • 如果用户 A 通过提交表单来处理“工作项”而用户 B 处理相同的“工作项”,则用户 A 的工作将在数据库中生效,并且用户 B 将被告知他们的更改没有生效,因为另一个用户已修改“工作项”。

我个人喜欢选项 2。请问有什么想法吗?

0 投票
3 回答
5725 浏览

php - 多用户应用程序记录锁定 - 最好的方法?

我正在开发一个处理多个同时用户的 php / mysql 应用程序。我正在考虑对当前正在查看/编辑的记录进行锁定/警告时采取的最佳方法。

要避免的情况是两个用户查看记录,一个进行更改,然后另一个执行相同的操作 - 一个更改可能会覆盖以前的更改。

在最新版本的 WordPress 中,他们使用某种方法来检测这一点,但它似乎并不完全可靠——通常会返回误报,至少在我的经验中是这样。

我假设必须使用某种形式的 ajax 来“ping”应用程序并让它知道记录仍在被查看/编辑(否则,用户可能会简单地关闭他们的浏览器窗口,然后应用程序将如何知道这一点)。

我可以看到的另一个解决方案是检查提交记录以供更新时的最后更新时间,以查看在此期间它是否已在其他地方更新 - 然后为用户提供继续或放弃他们自己的更改的选择。

也许我在解决方案方面提出了错误的建议-人们实现此(必须是相当普遍的)要求的经验是什么?

0 投票
13 回答
12596 浏览

ms-access - MS Access (JET) 是否适合多用户访问?

我有一个产品设计为使用 MS Access 文件作为数据库的桌面产品。

现在,一些用户需要将它安装在几台 PC(比如说 2 或 3 台)上并共享数据库。

我想将 MS Access 文件放在共享文件夹中并从 PC 访问它,但是...... JET 引擎是为多用户访问而设计的?

有什么提示或事情要注意这样做吗?

编辑:该应用程序是一个 .net 应用程序,使用数据库作为存储(不使用数据库作为前端)

0 投票
8 回答
3655 浏览

ms-access - 如何在 MS Access 中设置开发环境

我创建了一个 MS Access 2003 应用程序,设置为分离的前端/后端配置,用户组约为 5 人。前端 .mdb 位于网络文件服务器上,它包含所有查询、表单、报告和 VBA 代码,以及指向后端 .mdb 中所有表的链接以及一些指向 ODBC 数据源(如 AS/)的链接400。后端位于同一网络文件服务器上,其中只有表数据。

这一直运行良好,直到我“上线”并且我的少数用户开始提出增强请求、错误报告等。我一直在通过在我自己的前端 .mdb 副本中开发/测试来推出新代码另一个网络文件夹(链接到相同的后端 .mdb),然后将我完成的文件发布到“come-and-get-it”文件夹中,提醒用户,然后他们去复制/粘贴新的前端文件到他们自己在网络上的文件夹中。这样,每个用户都可以在他们处于“停止点”时更新他们的前端,而无需立即启动每个人。

我发现现在在开发时,有时Access会变得非常慢。就像,当我正在开发表单并尝试单击属性框上的下拉菜单时,下拉箭头将推入,但需要几秒钟才能出现选项列表。或者在表单上选择和移动控件时存在大量滞后。或者很多键盘滞后。

然后,在其他时候,根本没有滞后。

我想知道是否是因为我与其他用户链接到同一个后端。我确实做出了合理的努力来设置查询、表单、报告等,并根据需要使用最少的记录锁定(如果有的话)。但是我可能遗漏了一些东西,或者可能还有其他一些我需要解决的性能问题。

但是我想知道是否有更好的方法来设置我自己的开发后端.mdb,这样我就可以在“安全”数据上测试我的代码,而不是与其他用户相同的实时数据. 恐怕我破坏一些数据只是时间问题,可能是在最糟糕的时刻。

显然,我可以只设置一个单独的后端 .mdb 并每次使用链接表管理器手动重新配置前端中的表链接。但我希望有一个比这更优雅的解决方案。

而且我想知道在这个多用户拆分数据库配置中是否还有其他性能问题我应该考虑。

编辑:我应该补充一点,我坚持使用 MS Access(不是 MS-SQL 或任何其他“真实”后端);有关更多详细信息,请参阅我对这篇文章的评论。

0 投票
3 回答
1366 浏览

ms-access - 旧版 MS Access 应用程序需要支持多个用户

我目前在一个 4 人团队中,负责开发和维护旧版 MS Access 应用程序。

该应用程序非常大,有数百个表单、报告、查询和表格。

目前,我们将前端分为大约 7 个 mde 组件,每个组件本质上都是一个应用程序,并由一个通用前端连接,该前端本质上只是一个菜单 GUI。

我们使用链接表将此前端连接到 MS Access 后端,在代码本身中使用 OpenDatabase(C:\access.mdb) 调用。这个应用程序已经存在了一段时间,因此使用 DAO 连接到 Access 97 后端。

这意味着应用程序的每个用户都有自己的数据库本地副本以进行更改。我们有一个精心控制变更的环境,确保一次只有一个人可以处理数据,他们必须在将主数据库传递给下一个人之前验证所有更改。

委婉地说,这种变更控制环境令人窒息,很快我们将需要在一个时间范围内进行更多的数据更改,这使得单用户访问变得不可行。

所以,我们需要转向多用户访问,但多用户我的意思是只有大约 4 人。这些人可能不在同一个办公室,因此需要某种形式的远程数据库连接。

整个应用程序可能会在一两年内重新设计,将前端和后端都从 MS Access 移开。但是,我们需要尽快进行多用户访问。

那么,多用户幸福的最快途径是什么?

我们正在考虑的建议包括:

  • 设置 VPN 以便 MS Access 认为它​​正在访问常规网络驱动器。这看起来会很慢,我不确定 VPN 是否足够可靠,但这只是我们追求的临时解决方案。
  • 将 mdb 后端转换为供多用户远程使用的东西,例如 SQL Server。我们只是不知道如何快速轻松地做到这一点(例如,我们依赖于字段验证规则)我们可能还必须转换回 MS Access 格式,因为其他应用程序接受相同的 .mdb 文件作为数据输入。
  • 几乎可以由 1 或 2 个人在几个月内完成的任何事情。

编辑:回应以下评论。

应用程序处理的数据是高度安全的关键数据。它很少更改,并且在导出之前必须经过验证以显示没有逻辑错误。实际上,数据比应用程序本身受到更重的限制!

数据以非平凡的方式相互关联。因此,由于复杂的业务逻辑,对一个表中的记录的更改可能会使另一个表中的记录无效。因此,目前,mdb 数据文件的一份副本被指定为主数据库。任何时候只有一个人拥有主人。如果要对其进行更改,则必须从当前拥有该数据库的人那里获取该数据库。这通常不是问题,因为数据更改很少,以至于有足够的时间发生这种情况。

然而,一个巨大的变化即将到来,我们没有足够的时间来以这种方式工作。我们必须让多人同时处理数据。现在我知道您可以在网络驱动器上共享 mdb 文件,并让同一个办公室的多人在几乎没有风险的情况下处理该文件,但我们需要来自不同公司的人员同时处理数据. 据我了解,设置 VPN 来共享数据是一个糟糕的计划。

我相信我们必须将后端从 MS Access 更改为类似 SQL Server 的东西。但是以这种方式转换模式有多容易?SQL Server 中如何表示 MS Access 表验证规则?

0 投票
2 回答
292 浏览

c# - 存储用户权限 - 聪明的方式

我正在做一个应该适用于多用户的应用程序。目前我有一个存储用户名 + md5 密码哈希的文件(用户名作为盐)

现在我的应用程序应该得到增强,以便不同的用户可以拥有不同的权限。您将如何以聪明的方式存储它们,以便没有人可以更改它们但对我来说仍然很好处理?

我正在使用 C#

0 投票
3 回答
156 浏览

php - 处理多用户(开具发票)

处理多用户

要求:我有一个应用程序(mysql php jquery),用户可以:

  1. 查看记录并更新某些字段。
  2. 通过选择订单开具发票。

问题:问题是不应在同一时间段内两次开具发票。此外,一个字段不应由两个或多个用户同时更新。

可能的解决方案:

  1. 更新时锁定表,如果用户执行操作,通知并重新加载。
  2. Impliment 锁定系统,当用户执行某些操作时,它会锁定这些操作以由其他用户执行。
  3. ...