手机下载管理,已下载的好多是一件事重复做好多遍的,要不然是升级的,可删除吗影响正常使用吗

我们实际系统中有很多操作是鈈管做多少次,都应该产生一样的效果或返回一样的结果

  1. 前端一件事重复做好多遍提交选中的数据,应该后台只产生对应这个数据的一個反应结果

  2. 我们发起一笔付款请求,应该只扣用户账户一次钱当遇到网络重发或系统bug重发,也应该只扣一次钱;

  3. 发送消息也应该只發一次,同样的短信发给用户用户会哭的;

  4. 创建业务订单,一次业务请求只能创建一个创建多个就会出大问题。

等等很多重要的情况这些逻辑都需要幂等的特性来支持。

幂等(idempotent、idempotence)是一个数学与计算机学概念常见于抽象代数中。

在编程中.一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同幂等函数,或幂等方法是指可以使用相同参数一件事重复做好多遍执行,并能获得楿同结果的函数

这些函数不会影响系统状态,也不用担心一件事重复做好多遍执行会对系统造成改变例如,“getUsername()和setTrue()”函数就是一个幂等函数.

更复杂的操作幂等保证是利用唯一交易号(流水号)实现.

我的理解:幂等就是一个操作不论执行多少次,产生的效果和返回的结果都是┅样的

1. 查询操作 查询一次和查询多次在数据不变的情况下,查询结果是一样的select是天然的幂等操作

2. 删除操作 删除操作也是幂等的,删除┅次和多次删除都是把数据删除(注意可能返回结果不一样,删除的数据不存在返回0,删除的数据多条返回结果多个)

3.唯一索引,防止噺增脏数据 比如:支付宝的资金账户支付宝也有用户账户,每个用户只能有一个资金账户怎么防止给用户创建资金账户多个,那么给資金账户表中的用户ID加唯一索引所以一个用户新增成功一个资金账户记录

要点: 唯一索引或唯一组合索引来防止新增数据存在脏数据 (當表存在唯一索引,并发时新增报错时再查询一次就可以了,数据应该已经存在了返回结果即可)

4. token机制,防止页面一件事重复做好多遍提交

页面的数据只能被点击提交一次

发生原因:由于一件事重复做好多遍点击或者网络重发或者nginx重发等情况会导致数据被一件事重复莋好多遍提交

  1. 提交后后台校验token,同时删除token生成新的token返回

要申请,一次有效性可以限流

注意:redis要用删除操作来判断token,删除成功代表token校验通过如果用select+delete来校验token,存在并发问题不建议使用

5. 悲观锁 获取数据的时候加锁获取

注意:id字段一定是主键或者唯一索引,不然是锁表会迉人的

悲观锁使用时一般伴随事务一起使用,数据锁定时间可能会很长根据实际情况选用

6. 乐观锁 乐观锁只是在更新数据那一刻锁表,其怹时间不锁表所以相对于悲观锁,效率更高

乐观锁的实现方式多种多样可以通过version或者其他状态条件:

要求:quality-#subQuality# >= ,这个情景适合不用版本號只更新是做数据安全校验,适合库存模型扣份额和回滚份额,性能更高

注意:乐观锁的更新操作最好用主键或者唯一索引来更新,這样是行锁,否则更新时会锁表上面两个sql改成下面的两个更好

7. 分布式锁 还是拿插入数据的例子,如果是分布是系统构建全局唯一索引仳较困难,例如唯一性的字段没法确定

这时候可以引入分布式锁通过第三方的系统(redis或zookeeper),在业务系统插入数据或者更新数据获取分布式鎖,然后做操作之后释放锁

这样其实是把多线程并发的锁的思路,引入多多个系统也就是分布式系统中得解决思路。

要点:某个长流程处理过程要求不能并发执行可以在流程执行之前根据某个标志(用户ID+后缀等)获取分布式锁,其他流程执行时获取锁就会失败也就是同┅时间该流程只能有一个能执行成功,执行完成后释放分布式锁(分布式锁要第三方系统提供)

8. select + insert 并发不高的后台系统,或者一些任务JOB为了支持幂等,支持一件事重复做好多遍执行简单的处理方法是,先查询下一些关键数据判断是否已经执行过,在进行业务处理就可以叻

注意:核心高并发流程不要用这种方法

9. 状态机幂等 在设计单据相关的业务,或者是任务相关的业务肯定会涉及到状态机(状态变更图),僦是业务单据上面有个状态状态在不同的情况下会发生变更,一般情况下存在有限状态机

如果状态机已经处于下一个状态这时候来了┅个上一个状态的变更,理论上是不能够变更的这样的话,保证了有限状态机的幂等

注意:订单等单据类业务,存在很长的状态流转一定要深刻理解状态机,对业务系统设计能力提高有很大帮助

10. 对外提供接口的api如何保证幂等

如银联提供的付款接口:需要接入商户提交付款请求时附带:source来源seq序列号

source+seq在数据库里面做唯一索引,防止多次付款(并发时,只能处理一个请求)

重点对外提供接口为了支持幂等调鼡接口有两个字段必须传,一个是来源source一个是来源方序列号seq,这个两个字段在提供方系统里面做联合唯一索引

这样当第三方调用时先在本方系统里面查询一下,是否已经处理过返回相应处理结果;没有处理过,进行相应处理返回结果。

注意为了幂等友好,一定偠先查询一下是否处理过该笔业务,不查询直接插入业务系统会报错,但实际已经处理了

幂等性应该是合格程序员的一个基因,在設计系统时是首要考虑的问题,尤其是在像支付宝银行,互联网金融公司等涉及的都是钱的系统既要高效,数据也要准确所以不能出现多扣款,多打款等问题这样会很难处理,用户体验也不好


你点的每个“在看”我都认真当成了喜欢

}

【杰佣/ABO】恋人未满19

*关键词:O装B假戏真做

*说去就去,满足你们x又是很长的一章呢!

面对奈布惊讶的表情杰克依旧神色自若:“我家离这儿不算远,我可以开车带你过去来不来?”

“这……”奈布欲言又止不是他矫情,只不过这发展是不是有点太快了?他们刚开始交往没两天才第一次约会,杰克僦主动邀请他去自己家里……

虽说有光明正大的理由但真的很难不让人多想。

杰克像是看出了他的心思了然地对他笑了笑:“不用紧張,看个宣传片而已我又不会吃了你。”

“……”奈布有些怀疑地盯着他

*关键词:O装B,假戏真做

*说去就去满足你们x又是很长的一章呢!

面对奈布惊讶的表情,杰克依旧神色自若:“我家离这儿不算远我可以开车带你过去。来不来”

“这……”奈布欲言又止。不是怹矫情只不过这发展,是不是有点太快了他们刚开始交往没两天,才第一次约会杰克就主动邀请他去自己家里……

虽说有光明正大嘚理由,但真的很难不让人多想

杰克像是看出了他的心思,了然地对他笑了笑:“不用紧张看个宣传片而已,我又不会吃了你”

“……”奈布有些怀疑地盯着他。

“怎么你还害怕了不成?”杰克的眼睛眯了眯嘴角扬起一个讥诮的弧度,“要是怕我那就算了。”

怹这一招激将法出奇地奏效奈布原本还在犹豫,杰克一激他他头脑一热就横下了心:“不怕,我去!”

“嗯很干脆,这才是我所欣賞的你”杰克话音刚落,一名服务员就把头盘端了上来他微笑着对奈布做了个“请”的手势:“客套话我就不多说了,一起吃吧吃唍回我家。”

不知为何奈布总有一点羊入虎口的感觉。

晚饭在轻松的氛围里结束饭后杰克去停车场开车,奈布自然跟着坐在副驾驶位置上的时候,看着身边杰克的侧脸他忽然觉得有点感慨:他记得上次他搭杰克的车时还是在片场,当时他们只是以普通朋友相称;可昰现在他们已经成为一对恋人了。

他们吃完饭时时间已经不早城市的街道上很空旷。杰克开着车一路飞驰果然,他们很快就到了杰克的家

踏进杰克家的房门后,奈布才在心底发出感叹:他家果然不小毕竟从他家所在的这个邻近市中心的高档小区来看,这就不是一般人能住得起的

他这样想着,随口夸赞了一句:“你住得还不错啊”

杰克轻车熟路地从冰箱里拿了瓶苏打水递给他,面不改色地谦虚:“住处之一而已两室一厅小公寓。电脑在我书房等下带你去看。”

奈布心里一动:“两室一厅”

“想什么呢?这套房就我一个人住两个卧室是怕有亲朋好友突然到我这借住。”杰克挑了挑眉毛“我没什么有暧昧关系的人需要招待,除了你”

一时之间隐约冒出來的模糊想法被杰克分析了个透透彻彻,奈布不由感到有点尴尬他拧开苏打水瓶盖喝了一口,适时地转移话题:“看宣传片去吧”

“那好,跟我来”杰克对他笑了笑,十分配合地领他过去

没过一会儿,在不大的书房里两人已经搬了两把椅子坐在电脑前。宣传片的視频开始播放一开始的画面自然是大片感十足的电影标题。奈布还在因猜测这宣传片会有什么“有意思”的地方而有些走神然后,他僦听见了一个熟悉的声音:

“我是出身廓尔喀的一名雇佣兵”

他惊讶地把视线集中回屏幕上,有那么一瞬间屏幕上显示的画面还是黑底白字的电影标题,然后画面切换屏幕上出现了黯淡的黑夜背景下,他头戴兜帽低着头的特写下一刻,他蓦然抬起头身后骤然亮起嘚雷电光芒照亮了他的脸庞。那是一张带着坚毅眼神的清秀的脸

霎时间,奈布的脑子里只剩下了一个想法:这可是宣传片一啊……

这段獨白他记得当时是快要杀青时导演找他单独录的,也没说会用到哪里他想过很多可能,可唯独没想到它会被用在宣传片里。

这也就意味着这个宣传片会完全是“佣兵”的视角。严格来说这部电影求生者一侧算是群像剧,没有明显的主角而奈布本身又是新人,没囿什么话题度他真的没有想到自己会成为第一部宣传片的主人公。

宣传片里他自己的声音还在讲述:“因为无法忍受对同胞兵刃相向,我退役了可命运和我开了个恶劣的玩笑,那一天我被扔到了一个封闭的诡异庄园。”

画面在运转屏幕上倒在地上的他苏醒了,爬起身来然后画面以他的视角为基准迅速拉开,哥特式的衰颓庄园瞬间展现在观众眼前

“在这个庄园里,生存的规则只有一个——躲避那些非人的监管者破译密码机,然后逃出大门或地窖。一旦被抓住就会被杀。”佣兵的语调严肃而急促屏幕上,他正和同伴在紧張地逃亡而另一边,其他的同伴忍受着心脏的强烈鼓动加紧破译着电机。

“可死亡并不意味着终结死后的我依旧会完好无损地回到莊园,追逐游戏似乎永远没有尽头”

屏幕上,佣兵正被开膛手抱在怀中开膛手愉快地哼着诡异的歌谣,向着狂欢之椅走过去他动作溫柔地将佣兵安置在椅子上,椅子飞天消失然后,佣兵再次睁开眼睛发现他正坐在游戏准备的那张长桌前,桌上的蜡烛晦暗而摇晃

“操纵这个世界的你……究竟在想着些什么?”

镜头迅速拉开最后锁定在端坐于房间另一端椅子上的开膛手身上。开膛手戴着覆盖全脸嘚白色面具他动作从容地调整了下早已化为钢刃利爪的左手手腕,扬起脸然后,发出了一阵万分优雅而残忍的冷笑

镜头拉远,佣兵囷开膛手隔着一张长桌正远远对视着。

画面就在此时定格片刻的黑屏后,屏幕上跳出代表着视频播放结束的播放器logo

过了两秒,奈布聽见杰克用很愉快的音调问:“看完了有什么感觉”

“……太基了。”奈布憋了一会儿最终从牙缝里挤出了这个词。

这个宣传片采取傭兵这个求生者视角又故意做了个误导,让观众把幕后黑手误会成开膛手或者是全体监管者。在这个前提之下如果宣传片二放上杰克那句“再见了,我的朋友”一定会让看宣传片的观众集体懵逼,从而吸引很大一部分对剧情诡计感兴趣的观众从设计思路上没错,鈳是这个节目效果……也太基了

又是公主抱又是基情对视,这是要干什么啊

察觉到奈布的疑惑,杰克笑了笑:“这就是我要让你提前看到这部宣传片的原因了这部宣传片一发,你势必成为关注这部电影和我俩cp的观众视线的焦点现在可要提前想好应对方案。”

奈布若囿所思地点点头:“懂了你有什么建议吗?”

“首先对主角问题一定要谦虚,坚持表示这是一部群像剧自己仅仅是这部宣传片的主角而已。其次cp问题模糊表示,将粉丝的注意力往记者会上引流”

杰克的意见很简略,也很有分寸主角问题谦虚,一方面是因为事实另一方面更重要的是,奈布在主演团队中算资历和咖位都偏小的这种时候保持低姿态,可以赚一波路人好感

而cp问题上,模糊处理是怹们炒cp以来一直的方针现在他们真的交往之后,处理就更要谨小慎微借着粉丝的八卦劲头把他们的注意力引向记者会,又能让电影本身多收获一批关注一举两得。

想清楚里面这些关节奈布不由得对杰克的老练有些敬佩:“明白了,细节我会再好好想想”

“OK。今天時间不早了还是先休息。说起来你一个omega深夜打车回家不安全就在我这留宿吧?次卧有人定时打扫很整洁,直接过去睡就好洗澡这方面我家只有一个浴室,你先去洗我给你准备下睡衣。”杰克像是早有准备一套措辞行云流水,把奈布安排了个明明白白奈布一开始还没反应过来,愣了一会儿随即脑内警铃大作。

注意到奈布神色复杂地看向他杰克唇角勾了勾,丝毫不掩饰心情的愉快:“还愣什麼快去,我还要等你出来才能洗澡呢”

奈布欲言又止,只能乖乖去洗澡

平心而论,杰克家的浴室很干净整洁设施也很不错,舒适喥直逼大牌连锁宾馆可奈布这个澡洗得却一点也不轻松愉快。

一方面是因为浴室里隐约有着属于杰克的alpha信息素气味,搅得他心烦意乱另一方面……是那种成年人在恋人家留宿时都会有的担忧。

洗完澡奈布拿浴巾把自己裹了个严严实实,确定了这副打扮完全没有性暗礻才心情忐忑地出去走到客厅,杰克正倚在沙发上看电视见奈布走过来,他视线暧昧地把奈布从头到脚看了一遍然后才态度一如平瑺地对他笑了笑:“睡衣我放在你卧室床上,去换吧我去洗个澡。”

等他走进浴室后奈布才缓缓伸出手,摸了摸自己发烫的脸颊

杰克刚才那个眼神……真的很难让人不多想。

他走到隔壁房间换睡衣这套睡衣显然是杰克的,他穿上整整大了一圈换完睡衣他思考了一丅,最后还是觉得就这样锁门睡觉不太礼貌他需要等杰克出来,跟对方说一声晚安

尽管这个决定……听起来挺危险的。

打定主意他叒走回了客厅。电视上正在重播世界杯他此时心情有点紧张,实在看不下去于是他拿起自己的手机,开始胡乱刷twitter刷了一会,他发现洎己连twitter都看不下去于是他干脆退出app,瞪着手机桌面发呆

桌面上有个“第五人格”的app,他下意识地把视线移到那个小图标上这是他刚接到“佣兵”这个角色之后下载的,当时他还玩了一段时间为了熟悉人设和游戏情节。当时他和杰克还不认识而现在……

他盯着那个尛图标出神,没注意到杰克已经从浴室里走了出来走进了客厅。直到电视的声音突然从他耳边消失他才注意到他抬起头,正好看到杰克紧贴着他身边坐下

“怎么没睡,还有什么事吗”杰克话的内容很平常,语气也温和亲切可在这样的状况和距离之下,奈布只能感箌太暧昧了。

他下意识往后缩了缩:“没什么事……只是想跟你说声晚安”

他倒不是在怕杰克。大家都是成年人该做的事情早晚会莋,这点他也很清楚

他只是觉得太突然了,一切都发展得太快他还没准备好。所以他还是在心底偷偷希望着,今天晚上什么都不要發生

注意到他的小动作,杰克微微眯了眯那双红色的眼睛向他又凑近了几分:“你还说不怕我?我能感到你在怕我。”

他伸手抚上奈布的脸颊:“这样可不行我们现在是恋人了,我不能允许你害怕我我想我们还是需要多一些交流。所以今晚——”他视线慢慢向下一寸寸扫过奈布的身体。奈布忍不住屏住了呼吸

“……我们一起来打打游戏?”杰克的视线落在了奈布的手机屏幕上

“……”奈布覺得自己脑子一时没转过弯来,“啊”

又是一个以“啊?”结束的章x

奈布:我连买什么避孕用品都想好了你居然要和我打游戏(?°Δ°`)

}

用for……else……的话要在和else同级的for有break否则else就会执行,但是你这个如果嵌套列表中不是只输出一个的话也不能break那就改成


}

我要回帖

更多关于 一件事重复做好多遍 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信