/// <summary> /// 如果未设置, 则设置该秒价格 /// </summary> /// <param name="pr"></param> public void AddPriceIfNotSet(PagePrice pr) { if (GetSecPrice(pr.pageTime.Second) != null) { logger.InfoFormat("pageTime#{0} already setted ", pr); return; } prices[pr.pageTime.Second] = pr; }
/// <summary> /// 尝试对 该秒 计算 /// 如果 该秒 当前已被计算过,则返回 false /// 如果 该秒 当前未被计算过,则返回 true, 且设置 该秒 已被计算过 /// </summary> /// <param name="pr"></param> /// <returns></returns> public bool TryStartPagePrice(PagePrice pr) { lock (logger) { if (IsPagePriceCalced(pr)) { return(false); } if (pr.pageTime.Second < lastCalcedSec || pr.pageTime.Hour != 11 || pr.pageTime.Minute != 29) { logger.WarnFormat("price#{0}, last-calc-sec#{1}, is not legal", pr, lastCalcedSec); return(false); } flags[pr.pageTime.Second] = 1; lastCalcedSec = pr.pageTime.Second; logger.DebugFormat("at {0}, set lastCalcedSec to {1} ", pr, lastCalcedSec); return(true); } }
/// <summary> /// 该秒 是否 已被计算过 /// </summary> /// <param name="pr"></param> /// <returns></returns> public bool IsPagePriceCalced(PagePrice pr) { return(flags[pr.pageTime.Second] == 1); }
public void AddPrice(PagePrice pr) { m29.AddPriceIfNotSet(pr); }
public void AddPagePrice(PagePrice price) { prices.Add(price); priceMap[price.pageTime] = price; }
public static PageTimePriceResult Ok(PagePrice data) { return(new PageTimePriceResult(data)); }
public PageTimePriceResult(PagePrice data) { this.data = data; }
public override bool Equals(object objx) { PagePrice obj = (PagePrice)objx; return(obj != null && pageTime == obj.pageTime && basePrice == obj.basePrice); }