摘要: 先介绍下故事背景,假如现在要做一个MigrationProject,要建立比较多的Plan (比如50个),在Project中你需要完成下面的任务:1stround, 要把所有的PLAN都先跑一遍FULL MIGRATION2ndround, 然后把所有的PLAN都做若干次incremental migration直到cut off time具体要求:Job需要串行运行,涉及到人去手工操作的地方要尽量少(比如,不想用每个PLAN里设置SCHEDULE的方式,首先一点是每个PLAN都设置上SCHEDULE这就需要不少时间,之后中途发现某些JOB有些问题,想先暂停所有JOB还得去把它们都DISAB 阅读全文
posted @ 2013-09-27 17:49 红宝石 阅读(299) 评论(0) 推荐(0) 编辑
摘要: Convert.ToInt32()与int.Parse()的区别(1)这两个方法的最大不同是它们对null值的处理方法:Convert.ToInt32(null)会返回0而不会产生任何异常,但int.Parse(null)则会产生异常。没搞清楚Convert.ToInt32和int.Parse()的细细微区别时千万别乱用,否则可能会产生无法预料的结果,举例来说:假如从url中取一个参数page的值,我们知道这个值是一个int,所以即可以用Convert.ToInt32(Request.QueryString["page"]),也可以用,int.Parse(Request.Q 阅读全文
posted @ 2013-09-27 09:28 红宝石 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 首先lock和Minitor有什么区别呢?其实lock在IL代码中会被翻译成Monitor。也就是Monitor.Enter(obj)和Monitor.Exit(obj).lock(obj){}等价为:try{Monitor.Enter(obj)}catch(){}finally{Monitor.Exit(obj)}所以lock能做的,Monitor肯定能做,Monitor能做的,lock不一定能做。那么Monitor额外的功能呢?1:Monitor.TryEnter(obj,timespan)----timeout之后,就不执行这段代码了。lock可是一直会死等的。2:还有Monitor.W 阅读全文
posted @ 2013-09-27 09:16 红宝石 阅读(375) 评论(0) 推荐(0) 编辑