当前位置: 首页 > news >正文

公司网站模板怎么做做农产品网站需要做的准备

公司网站模板怎么做,做农产品网站需要做的准备,wordpress 批量上传,网站数据库 权限设计写在前面 传说自然界中并不存在两片完全一样的雪花的#xff0c;每一片雪花都拥有自己漂亮独特的形状、独一无二#xff1b;雪花算法也表示生成的ID如雪花般独一无二#xff0c;该算法源自Twitter。 雪花算法主要用于解决分布式系统的唯一Id生成问题#xff0c;在生产环境…写在前面 传说自然界中并不存在两片完全一样的雪花的每一片雪花都拥有自己漂亮独特的形状、独一无二雪花算法也表示生成的ID如雪花般独一无二该算法源自Twitter。 雪花算法主要用于解决分布式系统的唯一Id生成问题在生产环境中可以部署一个单独的服务来运行雪花算法然后通过请求该服务获取全局Id。 相对于UUID来说其长度短生成快做数据库主键时方便建立索引所以整体效率要高很多。 代码实现 using System; using System.Collections.Generic; using System.Linq; using System.Text;public class IdWorker {//机器IDprivate static long workerId;private static long twepoch 687888001020L; //唯一时间这是一个避免重复的随机量自行设定不要大于当前时间戳private static long sequence 0L;private static int workerIdBits 4; //机器码字节数。4个字节用来保存机器码(定义为Long类型会出现最大偏移64位所以左移64位没有意义)public static long maxWorkerId -1L ^ -1L workerIdBits; //最大机器IDprivate static int sequenceBits 10; //计数器字节数10个字节用来保存计数码private static int workerIdShift sequenceBits; //机器码数据左移位数就是后面计数器占用的位数private static int timestampLeftShift sequenceBits workerIdBits; //时间戳左移动位数就是机器码和计数器总字节数public static long sequenceMask -1L ^ -1L sequenceBits; //一微秒内可以产生计数如果达到该值则等到下一微妙在进行生成private long lastTimestamp -1L;/// summary/// 机器码/// /summary/// param nameworkerId/parampublic IdWorker(long workerId){if (workerId maxWorkerId || workerId 0)throw new Exception(string.Format(worker Id cant be greater than {0} or less than 0 , workerId));IdWorker.workerId workerId;}public long nextId(){lock (this){long timestamp timeGen();if (this.lastTimestamp timestamp){ //同一微妙中生成IDIdWorker.sequence (IdWorker.sequence 1) IdWorker.sequenceMask; //用运算计算该微秒内产生的计数是否已经到达上限if (IdWorker.sequence 0){//一微妙内产生的ID计数已达上限等待下一微妙timestamp tillNextMillis(this.lastTimestamp);}}else{ //不同微秒生成IDIdWorker.sequence 0; //计数清0}if (timestamp lastTimestamp){ //如果当前时间戳比上一次生成ID时时间戳还小抛出异常因为不能保证现在生成的ID之前没有生成过throw new Exception(string.Format(Clock moved backwards. Refusing to generate id for {0} milliseconds,this.lastTimestamp - timestamp));}this.lastTimestamp timestamp; //把当前时间戳保存为最后生成ID的时间戳long nextId (timestamp - twepoch timestampLeftShift) | IdWorker.workerId IdWorker.workerIdShift | IdWorker.sequence;return nextId;}}/// summary/// 获取下一微秒时间戳/// /summary/// param namelastTimestamp/param/// returns/returnsprivate long tillNextMillis(long lastTimestamp){long timestamp timeGen();while (timestamp lastTimestamp){timestamp timeGen();}return timestamp;}/// summary/// 生成当前时间戳/// /summary/// returns/returnsprivate long timeGen(){return (long)(DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds;} }/// summary /// 生成雪花ID /// /summary public static class SnowFlake {private static long _workerId 9;private static IdWorker _idWorker null;public static string NewId(){if (_idWorker null)_idWorker new IdWorker(_workerId);return _idWorker.nextId().ToString();} } 调用示例 var id SnowFlake.NewId();     MessageBox.Show(id.ToString()); 注意事项 需要注意的是雪花算法严重依赖时间所以当发生服务器时钟回拨的问题是会导致可能产生重复的id。当然实际基本不会发生这种情况生产环境中很少会回调服务器系统时间如果实在要回拨时间也可以通过调整步长参数来解决。
http://www.zqtcl.cn/news/287872/

相关文章:

  • 网站栏目策划 有思想的新闻网站建设开发的流程
  • 网站描述修改潍坊百度网站排名
  • 网站开发设计的技术网站开发可能存在的困难
  • 单片机做网站网站地图那么建设
  • 手机版网站建设软件wordpress主题开发ide
  • 网站建设的技术有哪些内容网站推广优化排名
  • 网站开发用jsp网站开发需要什么技术
  • 网站打开404错误怎么解决网站开发树形图
  • 好的建设网站公司哪家好湖南省做网站的
  • 网站怎么上传网站建设可行性分析表
  • 东营做网站优化价格企业网站开发一般多少钱
  • 高端网站设计公司排名邢台哪里有做网站的
  • 广州网站开发 英诺科技营销式网站建设
  • 网站存在的缺陷编程的基础知识
  • flash同视频做网站天津建设工程信息网投标信息系统
  • 湛江做网站开发手机网址大全主页网址
  • 平面网站设计如何租用网站服务器
  • 课程视频网站建设的必要性专利减缓在哪个网站上做
  • 正规品牌网站设计品牌网站建设开发 脚本语言
  • 潍坊模板建站定制网站规划管理部门的网站建设
  • 光明楼网站建设九一人才网赣州招聘官网
  • 如何做网站监控wordpress修改文章点赞数
  • 佛山高端网站建设报价网站的建设属于无形资产
  • 永川网站设计wordpress+用户前台
  • 晋城客运东站网站开发公司装修通知告示怎么写
  • 北京做手机网站的公司哪家好完整的网站开发
  • 建立网站的内容规划长沙网络推广哪家
  • 网站建设及优化教程百度网站优化排名
  • 医院网站推广渠道网站关键词排名不稳定
  • 类网站建设陕西省建设资格注册中心网站