Table des matières
回复讨论(解决方案)
Maison développement back-end tutoriel php :多用户同时访问时的问题?

:多用户同时访问时的问题?

Jun 23, 2016 pm 01:48 PM
多用户 访问

请各位大牛不吝指教,先谢过去了!
情况描述如下:

系统结构: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 
加一个过滤条件比较简单

当然在界面层也可以实现,不过界面层不宜(不能)直接访问数据层。
所以要单独设置缓存机制,未处理完的就不再向中间层发请求
用一个共享内存或数据库或文件的队列就可以了



太感谢了,清晰很多了,谢谢!!!
结贴,呵呵。
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

iOS 17 : Comment contrôler quelles applications peuvent accéder à vos photos iOS 17 : Comment contrôler quelles applications peuvent accéder à vos photos Sep 13, 2023 pm 09:09 PM

Dans iOS17, Apple a plus de contrôle sur ce que les applications peuvent voir sur les photos. Lisez la suite pour savoir comment gérer l'accès aux applications par application. Sous iOS, le sélecteur de photos intégré à l'application d'Apple vous permet de partager des photos spécifiques avec l'application, tandis que le reste de votre photothèque reste privé. Les applications doivent demander l'accès à l'intégralité de votre photothèque et vous pouvez choisir d'accorder l'accès suivant aux applications : Accès restreint – Les applications ne peuvent voir que les images que vous pouvez sélectionner, ce que vous pouvez faire à tout moment dans l'application ou en accédant aux paramètres. > Confidentialité et sécurité > Photos pour afficher les images sélectionnées. Accès complet – L'application peut afficher des photos

Comment accéder aux champs, tableaux et objets imbriqués JSONNode en Java ? Comment accéder aux champs, tableaux et objets imbriqués JSONNode en Java ? Aug 30, 2023 pm 11:05 PM

Un JsonNode est le modèle d'arborescence JSON de Jackson qui peut lire JSON dans des instances JsonNode et écrire JsonNode dans JSON. Nous pouvons utiliser Jackson pour lire JSON dans un JsonNode en créant une instance ObjectMapper et en appelant la méthode readValue(). Nous pouvons accéder aux champs, tableaux ou objets imbriqués en utilisant la méthode get() de la classe JsonNode. Nous pouvons utiliser la méthode asText() pour renvoyer une représentation sous forme de chaîne valide et convertir la valeur du nœud en Javaint à l'aide de la méthode asInt() de la classe JsonNode. Dans l'exemple ci-dessous nous pouvons accéder à Json

Accédez aux métadonnées de divers fichiers audio et vidéo à l'aide de Python Accédez aux métadonnées de divers fichiers audio et vidéo à l'aide de Python Sep 05, 2023 am 11:41 AM

Nous pouvons accéder aux métadonnées des fichiers audio en utilisant Mutagen et le module eyeD3 en Python. Pour les métadonnées vidéo, nous pouvons utiliser des films et la bibliothèque OpenCV en Python. Les métadonnées sont des données qui fournissent des informations sur d'autres données, telles que des données audio et vidéo. Les métadonnées des fichiers audio et vidéo incluent le format de fichier, la résolution du fichier, la taille du fichier, la durée, le débit binaire, etc. En accédant à ces métadonnées, nous pouvons gérer les médias plus efficacement et analyser les métadonnées pour obtenir des informations utiles. Dans cet article, nous examinerons certaines des bibliothèques ou modules fournis par Python pour accéder aux métadonnées des fichiers audio et vidéo. Accéder aux métadonnées audio Certaines bibliothèques permettant d'accéder aux métadonnées des fichiers audio utilisent la mutagenèse

Comment résoudre le problème d'inaccessibilité après le déploiement du package de guerre par Tomcat Comment résoudre le problème d'inaccessibilité après le déploiement du package de guerre par Tomcat Jan 13, 2024 pm 12:07 PM

Comment résoudre le problème selon lequel Tomcat ne parvient pas à accéder au package war après son déploiement nécessite des exemples de code spécifiques. En tant que serveur Web Java largement utilisé, Tomcat permet aux développeurs de regrouper leurs propres applications Web développées dans des fichiers war pour le déploiement. Cependant, nous pouvons parfois rencontrer le problème de l'impossibilité d'accéder au package war après son déploiement. Cela peut être dû à une configuration incorrecte ou à d'autres raisons. Dans cet article, nous fournirons quelques exemples de code concrets qui résolvent ce dilemme. 1. Vérifiez le service Tomcat

Comment résoudre l'accès aux ressources externes et les appels dans le développement PHP Comment résoudre l'accès aux ressources externes et les appels dans le développement PHP Oct 08, 2023 am 11:01 AM

Comment résoudre le problème de l'accès et de l'appel à des ressources externes dans le développement PHP nécessite des exemples de code spécifiques. Dans le développement PHP, nous rencontrons souvent des situations dans lesquelles nous devons accéder et appeler des ressources externes, telles que des interfaces API, des bibliothèques tierces ou d'autres ressources de serveur. . Lorsque nous traitons avec ces ressources externes, nous devons réfléchir à la manière d'accéder et d'appeler en toute sécurité tout en garantissant performances et fiabilité. Cet article décrit plusieurs solutions courantes et fournit des exemples de code correspondants. 1. Utilisez la bibliothèque curl pour appeler des ressources externes. Curl est une bibliothèque open source très puissante.

Comment résoudre le problème d'accès refusé lors de la modification de fichiers sous Windows 7 Comment résoudre le problème d'accès refusé lors de la modification de fichiers sous Windows 7 Jul 04, 2023 pm 07:01 PM

Comment résoudre le problème d'accès refusé lors de la modification de fichiers sous win7 ? Lors de la modification de certains fichiers système, il nous sera souvent demandé que nous n'avons pas l'autorisation d'effectuer l'opération. Nous pouvons désactiver la fonction d'autorisations des dossiers ou obtenir des droits d'administrateur. Pour les utilisateurs qui ont besoin de modifier de tels fichiers, veuillez consulter les didacticiels détaillés suivants. Solution au problème d'accès refusé lors de la modification de fichiers sous Windows 7 : 1. Sélectionnez d'abord le dossier correspondant, cliquez sur l'outil ci-dessus et sélectionnez l'option du dossier. 2. Accédez à l'onglet Affichage. 3. Décochez Utiliser le partage de fichiers simple et confirmez. 4. Cliquez ensuite avec le bouton droit sur le dossier correspondant et cliquez sur Propriétés. 5. Accédez à l'onglet Sécurité. 6. Sélectionnez la position de l'icône et cliquez sur Avancé. 7

Que faire si les dossiers partagés ne sont pas accessibles dans Windows 10 Home Edition Que faire si les dossiers partagés ne sont pas accessibles dans Windows 10 Home Edition Jan 11, 2024 pm 07:36 PM

Le partage de dossiers est en effet une fonctionnalité extrêmement utile dans un environnement réseau domestique ou professionnel. Il vous permet de partager facilement des dossiers avec d'autres utilisateurs, facilitant ainsi le transfert et le partage de fichiers. Le dossier partagé Win10 Home Edition n'est pas accessible Solution : Solution 1 : Vérifiez la connexion réseau et les autorisations utilisateur Lorsque vous essayez d'utiliser le dossier partagé Win10, nous devons d'abord confirmer si la connexion réseau et les autorisations utilisateur sont normales. S'il y a un problème avec la connexion réseau ou si l'utilisateur n'est pas autorisé à accéder au dossier partagé, cela peut entraîner une inaccessibilité. 1. Tout d'abord, assurez-vous que la connexion réseau est fluide afin que l'ordinateur et l'ordinateur sur lequel se trouve le dossier partagé soient sur le même réseau local et puissent communiquer normalement. 2. Vérifiez ensuite les autorisations de l'utilisateur pour confirmer que l'utilisateur actuel est autorisé à partager des fichiers.

Autoriser l'accès aux appareils photo uniquement en HTML5 Autoriser l'accès aux appareils photo uniquement en HTML5 Sep 22, 2023 pm 11:09 PM

Il n'y a pas d'accès unique à l'appareil photo dans iOS. La recommandation officielle de la spécification est la suivante : il est recommandé aux implémentations d'agent utilisateur de cette spécification de demander le consentement de l'utilisateur avant de commencer à capturer du contenu via le microphone ou la caméra. Cela peut être nécessaire pour répondre aux exigences réglementaires, légales et aux meilleures pratiques liées à la confidentialité des données des utilisateurs. De plus, il est recommandé que les implémentations d'agent utilisateur fournissent une indication à l'utilisateur lorsqu'un périphérique d'entrée est activé et permettent à l'utilisateur de mettre fin à une telle capture. De même, il est recommandé aux agents utilisateurs de fournir des contrôles utilisateur, par exemple en permettant à l'utilisateur - de sélectionner le périphérique de capture multimédia exact à utiliser si plusieurs périphériques sont présents - pour le même. Désactivez la capture sonore en mode capture vidéo.

See all articles