Skip to content

Балашов А. Д. homework 2#56

Open
Balashov2004 wants to merge 2 commits intokontur-courses:masterfrom
Balashov2004:balashov_homework
Open

Балашов А. Д. homework 2#56
Balashov2004 wants to merge 2 commits intokontur-courses:masterfrom
Balashov2004:balashov_homework

Conversation

@Balashov2004
Copy link
Copy Markdown

No description provided.

.Select(ProcessRequestAsync)
.ToList();

var delayTask = Task.Delay(timeout);
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

По-хорошему delayTask бы создать до всех ProcessRequestAsync. Иначе выходит, что запросы уже какое-то время как отправлены

var request = CreateRequest(uri + "?query=" + query);
var requestTimer = Stopwatch.StartNew();
var task = ProcessRequestAsync(request);
var delayTask = Task.Delay(currentReplicaTimeout);
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

timeLeft и currentReplicaTimeout могут оказаться отрицательными. Task.Delay может или выбросить исключение, или, с маленьким шансом, превратиться в никогда не заканчивающуюся таску

tasks.Remove(finishedTask);
if (tasks.Count == 0 || i < ReplicaAddresses.Length - 1)
{
goto next;
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Почему не просто break?

var delayTask = Task.Delay(timeToNextLaunch);
var completedTask = await Task.WhenAny(Task.WhenAny(tasks), delayTask);

if (completedTask != delayTask)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Если реплики будут тормозить, то соответствующие таски так и останутся в tasks, и статистика для них не обновится

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants