Mik*_*oud 2 .net c# windows-services
生成一个唯一的16个字符的密钥,用作批处理名称,不需要任何类型的存储(例如,一个唯一的计数器).
我有一个每30秒运行一次的Windows服务.我从MQ中获取消息并批量处理它们.我正在进行的一项服务调用现在需要一个16个字符的批处理名称.他们不关心批处理名称是什么,它只需要在所有批次中都是唯一的.
如果我生成一个Guid,我可以使用该字符串的第一个或最后16个字符,它仍然是我需要的唯一吗?
没有.
Raymond Chen解释了为什么GUID中的详细信息是全局唯一的,但GUID的子串却不是.
但是,如果您在一台计算机上运行此操作,那么您不需要您的ID是全局唯一的 - 仅仅是本地唯一的.因此,您可以从他描述的GUID算法中删除MAC地址要求.此外,如果您知道每30秒只生成一个,则可以删除算法的碰撞部分.这几乎让你使用qujck建议的日期时间.