我正在使用 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/