:多用户同时访问时的问题?
请各位大牛不吝指教,先谢过去了!
情况描述如下:
系统结构:1. 界面模块(php) -->2. 中间接口(php) --> 3. 数据库(mysql)
1. 界面模块:显示操作界面及操作结果;
2. 中间接口:负责界面模块和数据库之间的数据交换,及其他功能(跟求助问题无关,不加以描述);
大致流程:从界面模块发送http请求,该请求发送给接口模块,接口模块访问数据库获得数据,返回给界面模块;
问题来了:
界面模块有大量访问用户,这些用户可能同时发送同样的请求给接口,比如:同时编辑某一数据。
问:如何才能避免这种问题?
不知道有没描述清楚,请各大牛赐教,谢谢!
回复讨论(解决方案)
加锁
若业务上允许“同时编辑某一数据”,则以最后提交的为准
否则在收到请求时返回 xxx正在编辑
谢谢斑竹的指教!能详细点吗?合作方要求只能在界面模块进行限制同时编辑某一数据。
在用户A编辑某条新闻读取成功时,将这条数据的状态字段设为1,记录读取的时间戳
此时再有人想编辑,状态1就拒绝
用户A的页面ajax轮询,每隔几十秒告诉服务器还在编辑并刷新时间
当A编辑提交,或用户B想编辑状态为1,但是最后一次ajax提交的时间和当前差太多,就设置状态为0
在用户A编辑某条新闻读取成功时,将这条数据的状态字段设为1,记录读取的时间戳
此时再有人想编辑,状态1就拒绝
用户A的页面ajax轮询,每隔几十秒告诉服务器还在编辑并刷新时间
当A编辑提交,或用户B想编辑状态为1,但是最后一次ajax提交的时间和当前差太多,就设置状态为0
谢谢您的回复,我有些疑惑在界面模块可以这样做吗?我曾讨教过一位做了多年php的朋友,他告诉我这没法整。
之前我也想过设置标识,因为无法操作数据库,所以放弃了。
编辑的时候不需要权限么?A发的B也可以编辑么?
编辑的时候不需要权限么?A发的B也可以编辑么?
谢谢您的到来!
编辑的时候需要权限,但可以在线多个有权限的用户进行编辑某一条数据。
不允许同时编辑同一条记录,是业务层面的需求
业务需求的实现,应在 中间接口 中完成。如有特殊需求,也可在 界面模块 完成
你的这个需求还是应在 中间接口 中完成的
不允许同时编辑同一条记录,是业务层面的需求
业务需求的实现,应在 中间接口 中完成。如有特殊需求,也可在 界面模块 完成
你的这个需求还是应在 中间接口 中完成的
感谢版主的再次指教!谢谢“xuzuning”版主!
我描述的还不够细致,重新描述下业务逻辑:
界面层的功能包括:数据显示,数据编辑请求,操作用户的管理等,且界面层有操作用户的数据库。
中间接口层:处理界面层的请求,无视操作用户,不管哪个操作用户的操作请求,中间接口层都视为合法。
我感觉版主您的意思是在中间接口层处理,然后不管谁发过来的请求,请求过来,标识锁定,返回结果后再标识解锁?
我之前也是这样认为的,因为第一次接触php, 对方是老手,所以不敢确定。
对方非得要我在界面层来处理该业务,说用ajax就可以, 但我觉得我无法去设标识,所以困惑,才有此问。
再次感谢版主的指教!
放在 中间层 比较合适
因为一般的说,中间层就是通常说的 API
加一个过滤条件比较简单
当然在界面层也可以实现,不过界面层不宜(不能)直接访问数据层。
所以要单独设置缓存机制,未处理完的就不再向中间层发请求
用一个共享内存或数据库或文件的队列就可以了
放在 中间层 比较合适
因为一般的说,中间层就是通常说的 API
加一个过滤条件比较简单
当然在界面层也可以实现,不过界面层不宜(不能)直接访问数据层。
所以要单独设置缓存机制,未处理完的就不再向中间层发请求
用一个共享内存或数据库或文件的队列就可以了
太感谢了,清晰很多了,谢谢!!!
结贴,呵呵。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

在iOS17中,Apple可以更好地控制应用程序可以看到的照片内容。继续阅读,了解如何按应用管理应用访问权限。在iOS中,Apple的应用内照片选取器可让您与应用共享特定照片,而照片图库的其余部分则保持私密。应用必须请求访问您的整个照片图库,您可以选择授予应用以下访问权限:受限访问–应用程序只能看到您可以选择的图像,您可以随时在应用程序中或通过转到“设置”>“隐私和安全”>“照片”来查看所选图像。完全访问权限–App可以查看照片

一个JsonNode是Jackson的JSON树模型,它可以将JSON读取为JsonNode实例,并将JsonNode写入JSON。通过创建ObjectMapper实例并调用readValue()方法,我们可以使用Jackson将JSON读取为JsonNode。我们可以使用JsonNode类的get()方法访问字段、数组或嵌套对象。我们可以使用asText()方法返回有效的字符串表示,并使用JsonNode类的asInt()方法将节点的值转换为Javaint。在下面的示例中,我们可以访问Json

我们可以使用Mutagen和Python中的eyeD3模块访问音频文件的元数据。对于视频元数据,我们可以使用电影和Python中的OpenCV库。元数据是提供有关其他数据(例如音频和视频数据)的信息的数据。音频和视频文件的元数据包括文件格式、文件分辨率、文件大小、持续时间、比特率等。通过访问这些元数据,我们可以更有效地管理媒体并分析元数据以获得一些有用的信息。在本文中,我们将了解Python提供的一些用于访问音频和视频文件元数据的库或模块。访问音频元数据一些用于访问音频文件元数据的库是-使用诱变

如何解决Tomcat部署war包后无法成功访问的困扰,需要具体代码示例Tomcat作为一个广泛使用的JavaWeb服务器,允许开发人员将自己开发的Web应用打包为war文件进行部署。然而,有时候我们可能会遇到部署war包后无法成功访问的问题,这可能是由于配置不正确或其他原因引起的。在本文中,我们将提供一些解决这个困扰的具体代码示例。一、检查Tomcat服务

win7修改文件提示更改权限拒绝访问如何解决?一些系统文件在进行修改的时候,常常会提示我们没有权限去进行操作。我们可以去进行文件夹权限的功能关闭,或者获取管理员权限。需要修改此类文件的用户,一起来看看接下来具体的教程分享吧。win7修改文件提示更改权限拒绝访问解决办法 1、首先选中对应文件夹,点击上方工具,选中文件夹选项。 2、进入查看选项卡。 3、取消勾选使用简单文件共享然后确定。 4、然后右键选择对应文件夹,点击属性。 5、进入安全选项卡。 6、选择图示位置,点击高级。 7

如何解决PHP开发中的外部资源访问和调用,需要具体代码示例在PHP开发中,我们经常会遇到需要访问和调用外部资源的情况,比如API接口、第三方库或者其他服务器资源。在处理这些外部资源时,我们需要考虑如何进行安全的访问和调用,同时保证性能和可靠性。本文将介绍几种常见的解决方案,并提供相应的代码示例。一、使用curl库进行外部资源调用curl是一个非常强大的开源库

在家庭或企业网络环境下,共享文件夹确实是一项极其实用的功能,它能让您轻松地将文件夹分享给其他用户,从而便于文件的传输与分享。win10家庭版共享文件夹无法访问解决方法:解决方案一:检查网络连接和用户权限在尝试使用Win10共享文件夹时,我们首先需要确认网络连接及用户权限是否正常。若网络连接存在故障或用户未获得访问共享文件夹的权限,便可能导致无法访问的现象。1、首先请确保网络连接顺畅,以便计算机与共享文件夹所在的计算机在同一局域网中,能够正常进行通信。2、其次检查用户权限,确认当前用户对于共享文件

iOS中无法唯一访问相机设备。官方规范建议如下-建议该规范的用户代理实现在开始通过麦克风或摄像头捕获内容之前征求用户同意。这可能是满足与用户数据隐私相关的监管、法律和最佳实践要求所必需的。此外,建议用户代理实现在输入设备启用时向用户提供指示,并使用户可以终止此类捕获。同样,用户代理建议提供用户控制,例如允许用户-如果存在多个设备,则选择要使用的确切媒体捕获设备相同。在视频捕获模式下禁用声音捕获。
