public OriginalGallery(IBrowsableCollection selection, string path, string name) : base(selection, path, name) { requests = new ScaleRequest [] { new ScaleRequest("hq", 0, 0, false), new ScaleRequest("mq", 800, 600, true), new ScaleRequest("lq", 640, 480, false, true), new ScaleRequest("thumbs", 120, 120, false) }; }
public OriginalGallery(IBrowsableCollection selection, string path, string name) : base(selection, path, name) { requests = new ScaleRequest [] { new ScaleRequest ("hq", 0, 0, false), new ScaleRequest ("mq", 800, 600, true), new ScaleRequest ("lq", 640, 480, false, true), new ScaleRequest ("thumbs", 120, 120, false) }; }
internal virtual bool NeedScale(ScaleRequest scaleRequest, Offer currentOffer) { // TODO: temporary implementation if (currentOffer.GetThroughput() == scaleRequest.TargetThroughput) { return(false); } return(true); }
public void AddRequestCharge(double context) { var eventTime = DateTime.Now; long tooManyRequestsEvent = eventTime.Ticks; _tooManyRequestsHistory.Add(tooManyRequestsEvent); _tooManyRequestsHistory = _tooManyRequestsHistory .Where(record => record >= eventTime.AddSeconds(_monitorDuration).Ticks) .ToList(); if (_tooManyRequestsHistory.Count >= _tooManyRequestsThreshold) { var currentThroughput = Scaler.GetCurrentThroughputAsync().Result; // TODO make dynamic var scaleRequest = new ScaleRequest(_databaseId, _collectionId, currentThroughput * _scaleFactor); var result = Scaler.AdjustThroughputAsync(scaleRequest).Result; } }
public async Task <ScaleResponse> AdjustThroughputAsync(ScaleRequest scaleRequest) { var currentOffer = await GetCurrentOfferAsync(); if (NeedScale(scaleRequest, currentOffer)) { Offer replaced = await _client.ReplaceOfferAsync(new OfferV2(currentOffer, scaleRequest.TargetThroughput)); return(new ScaleResponse { IsAccepted = true, AdjustedThroughput = replaced.GetThroughput() }); } return(new ScaleResponse() { IsAccepted = false, AdjustedThroughput = currentOffer.GetThroughput() }); }
public ActionResult <ScaleResponse> PostScale(ScaleRequest scaleRequest) { //生成TaskId string TaskId = Guid.NewGuid().ToString(); //生成TodoItem并保存 ScaleParams scaleParams = this.scaleParams; List <ScaleValue> scaleValues = this.scaleValues; scaleParams.TaskId = TaskId; //主键不能重复 scaleParams.ScaleParamId = _context.ScaleParams.Count() + 1; int currentCount = _context.ScaleValues.Count(); scaleValues.ForEach(m => { m.ScaleValueId = currentCount + m.ScaleValueId; }); //更新关联关系 TodoItem todoItem = new TodoItem { TokenId = scaleRequest.TokenId, TaskId = TaskId, ScaleName = this.ScaleName, ScaleType = this.ScaleType, ScaleCount = this.ScaleCount, ScaleFrequency = this.ScaleFrequency, ScaleParams = scaleParams, ScaleValues = this.scaleValues, IsComplete = false }; scaleParams.todoItem = todoItem; scaleValues.ForEach(m => { m.TodoItem = todoItem; }); //保存关联关系 _context.TodoItems.Add(todoItem); _context.ScaleParams.Add(scaleParams); scaleValues.ForEach(m => _context.ScaleValues.Add(m)); _context.SaveChanges(); //返回结果 ScaleResponse scaleResponse = new ScaleResponse { TokenId = scaleRequest.TokenId, TaskId = TaskId, Result = true, Msg = "" }; return(scaleResponse); }
public HtmlGallery (IBrowsableCollection selection, string path, string name) : base (selection, path, name) { requests = new ScaleRequest [] { new ScaleRequest ("hq", 0, 0, false), new ScaleRequest ("mq", 480, 320, false), new ScaleRequest ("thumbs", 120, 90, false) }; }
public HtmlGallery(IBrowsableCollection selection, string path, string name) : base(selection, path, name) { requests = new ScaleRequest [] { new ScaleRequest("hq", 0, 0, false), new ScaleRequest("mq", 480, 320, false), new ScaleRequest("thumbs", 120, 90, false) }; }