示例#1
0
 public void Add(ReservedRange range)
 {
     if (range != null)
     {
         foreach (var item in range.DataNodeToFinalParts)
         {
             if (!this.DataNodeToFinalParts.TryGetValue(item.Key, out var list))
             {
                 list = new List <AgentPacketPartInfo>();
                 this.DataNodeToFinalParts.Add(item.Key, list);
             }
             list.AddRange(item.Value);
         }
     }
 }
示例#2
0
        private void ReserveRange(DataNodeReader nodeReader, DataProcessingContext ctx)
        {
            ReservedRange range = nodeReader.ReserveRangeAsync(ctx.DpuId, new ReserveRangeOptions
            {
                LeaseTimeout                = this.settings.JobLeaseLifeTime ?? TimeSpan.FromHours(1),
                NeedReserveRange            = ctx.NeedReserveRange.ForAlreadyReserved(ctx.RangeRecordsCount()),
                HasDataInPreviousProcessing = ctx.HasDataInPreviousProcessing,
                FullScanAfterNQueries       = 20,
            }, ctx.CancellationToken);

            if (ctx.ReservedRange == null)
            {
                ctx.ReservedRange = range;
            }
            else
            {
                ctx.ReservedRange.Add(range);
            }
        }