python - 如何从数据库中同时检索对象?

标签 python mysql sql django algorithm

我正在使用 Django 构建一个社交分析网站。

这是我的一个用例:

"Users" of the site analyze social media "profiles" (from Snapchat, Instagram, Twitter, etc...). 
Each social media "profile" is only analyzed once (and not more).

我有一个 SQL 查询,用于检索队列中的配置文件。例如,返回的前 5 配置文件(当我重复此查询 5 次时)是:

xmax123, darcy67, shop_hallmary10, christmas_shop987, lilybend_09

用户分析个人资料xmax123,其他用户将不再显示xmax123 来分析。

我的问题是,当多个用户同时调用此 SQL 查询时,将为所有返回相同的社交媒体配置文件 (xmax123) >用户。换句话说,当两个用户(用户1用户2)同时调用此SQL查询时,同一个社交媒体profile (xmax123) 都会为它们返回。这意味着 xmas123 将被 2 不同的用户分析两次,这是一个问题。

我想确保用户 1 获取 xmax123用户 2 获取 darcy67,即使两者都 users 同时调用此 SQL 查询。有哪些策略可以解决这个问题?

最佳答案

您可以利用互斥体来限制访问。

在没有看到代码库的情况下,我不确定将其放置在哪里。您可以使用它来锁定访问权限,以便一次只有一个用户可以查询。然后在一个人查询后释放互斥锁,以便下一个用户现在可以访问数据库。

关于python - 如何从数据库中同时检索对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44463563/

相关文章:

python - Anaconda Spyder 无法在 Windows 8 上显示程序窗口

python - 如何处理UserWarning : Converting sparse IndexedSlices to a dense Tensor of unknown shape

mysql - 删除行时修复以下 id

SQL查询提取每个类别中得票最多的前3条记录

mysql - SQL获取所有不是我 friend 的 friend 的 friend

python - Django教程最大深度递归

python - 在Python中批量插入MySQL

MYSQL - 向已填充的数据添加固定数字

MYSQL 优化器只是忽略我在复合索引中用于 ORDER BY 的最后一列

sql - PostgreSQL 子查询作为可用变量