示例#1
0
            private void SampleNow()
            {
                using (var scope = new TransactionScope(TransactionScopeOption.Required,
                                                        new TransactionOptions
                {
                    IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted
                }))
                {
                    _db = new ImageServerDBDataContext();
                    foreach (var processorId in GetActiveProcessorIds())
                    {
                        var studyStorages = GetStudiesProcessed(processorId);
                        var sopCount      = Enumerable.Sum(studyStorages, guid => GetStudySopCount(guid));

                        var sample = new WorkQueueProcessingSample()
                        {
                            Processor        = processorId,
                            TotalSOProcessed = sopCount
                        };

                        var lastSample = GetPreviousSample(processorId);
                        sample.Speed = lastSample == null
                                                        ? 0
                                                        : (sample.TotalSOProcessed - lastSample.TotalSOProcessed) / (sample.Timestamp - lastSample.Timestamp).TotalSeconds;

                        AddSample(sample);
                    }

                    scope.Dispose();
                }
            }
示例#2
0
            private void AddSample(WorkQueueProcessingSample sample)
            {
                lock (_samples)
                {
                    List <WorkQueueProcessingSample> list;
                    if (!_samples.TryGetValue(sample.Processor, out list))
                    {
                        list = new List <WorkQueueProcessingSample>();
                        _samples.Add(sample.Processor, list);
                    }

                    list.Add(sample);
                }

                EventsHelper.Fire(SampleTaken, this, new SampleTakenEventArgs()
                {
                    WorkQueueProcessingSample = sample
                });
            }
示例#3
0
			private void SampleNow()
			{
				using (var scope = new TransactionScope(TransactionScopeOption.Required,
					new TransactionOptions
					{
						IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted
					}))
				{
					_db = new ImageServerDBDataContext();
					foreach (var processorId in GetActiveProcessorIds())
					{
						var studyStorages = GetStudiesProcessed(processorId);
						var sopCount = Enumerable.Sum(studyStorages, guid => GetStudySopCount(guid));
						
						var sample = new WorkQueueProcessingSample()
						{
							Processor=processorId,
							TotalSOProcessed = sopCount
						};

						var lastSample = GetPreviousSample(processorId);
						sample.Speed = lastSample == null
							? 0
							: (sample.TotalSOProcessed - lastSample.TotalSOProcessed)/(sample.Timestamp - lastSample.Timestamp).TotalSeconds;

						AddSample(sample);
					}

					scope.Dispose();
				}

			}
示例#4
0
		void DrawSample(WorkQueueProcessingSample sample)
		{
			this._processingSpeedChart.Series[0].Points.AddXY(sample.Timestamp.ToOADate(), sample.Speed);
		}
示例#5
0
			private void AddSample(WorkQueueProcessingSample sample)
			{
				lock (_samples)
				{
					List<WorkQueueProcessingSample> list;
					if (!_samples.TryGetValue(sample.Processor, out list))
					{
						list = new List<WorkQueueProcessingSample>();
						_samples.Add(sample.Processor, list);
					}

					list.Add(sample);
				}

				EventsHelper.Fire(SampleTaken, this, new SampleTakenEventArgs() { WorkQueueProcessingSample = sample });
			}
示例#6
0
 void DrawSample(WorkQueueProcessingSample sample)
 {
     this._processingSpeedChart.Series[0].Points.AddXY(sample.Timestamp.ToOADate(), sample.Speed);
 }