web-services - Web 服务返回唯一的自动递增的人类可读 ID 号

标签 web-services uniqueidentifier increment

我希望创建一个简单的 Web 服务,在轮询时返回一个唯一的 id。 ID 必须是人类可读的(即不是 guid,可能是 000023 的形式),并且每次调用时都会增加 1。

现在我需要考虑它可能同时被两个不同的应用程序调用,我不希望它向每个应用程序返回相同的数字。

除了使用数据库来存储当前号码之外,还有其他选择吗?

当然,这之前已经完成了,如果是的话,任何人都可以指出我的一些源代码。

谢谢,

尼尔

最佳答案

使用一段关键代码段来控制通过一段代码一次一个的流程。您可以使用 lock statement 执行此操作或者稍微更硬核并直接使用互斥锁。这样做将确保您向每个调用者返回不同的号码。

至于存储它,使用数据库返回一个自动递增的数字是过度的 - 尽管 SQLServer 和 Oracle(以及很可能是其他的,但我不能代表他们)都提供了一个自动递增的键功能,所以你可以调用 web 服务,在数据库表中生成一个新条目,返回 key ,调用者可以使用该号码作为返回该记录的 key (如果您在初始调用后保存更多数据)。通过这种方式,您还可以让数据库担心唯一编号的生成,您不必担心它的详细信息 - 尽管如果您还没有数据库,这不是一个好的选择。

另一种选择是将其存储在本地文件中,尽管读取文件、增加数字并将其写回的成本很高,所有这些都在关键部分中。

关于web-services - Web 服务返回唯一的自动递增的人类可读 ID 号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2492006/

相关文章:

android - 在 Android 和 Firebase 中欺骗安全设备识别

android - 创建全局唯一的 Android 标识符

JavaScript:除前和后缀增量/减量

c++ - C++中递增和递减运算符的优先级

android - android中如何查看我们的web服务是否开启?

java - 如何将日期作为 URL 参数传递

java - iOS 和 Android 的移动设备唯一性

java - 统计输入字符的次数--Do-While Loops Java

android - 无法在我的项目中包含 AndroidHttpTransport

php - (Wordpress) Contact Form 7 在 before_send_mail 过滤器中中止