【发布时间】:2011-10-17 08:44:12
【问题描述】:
我有一个文件中唯一编号的列表。每当我网站的用户发出请求时,我都需要从该列表中获取一个值,这样其他用户就不会获得相同的值。可能有许多并发请求,因此主要问题是保证没有两个用户获得相同的值。我并不关心性能,因为用户在发出请求后不会期望任何回复,因此一切都可能在后台发生。根据我的阅读,这可以使用文件锁来实现,或者我可以将数据存储在数据库中并使用数据库锁。我只是想知道做这件事的最佳方法是什么。我正在使用 postresql 作为我的数据库,并且想知道这是否可以使用我在序列中存储当前行号的序列来完成,以便我的程序知道从数据库中读取哪一行。但是我再次不确定如何防止多个进程在其中任何一个有机会更新它之前读取同一行。
【问题讨论】:
标签: database postgresql concurrency unique file-locking