Проблема связана с тайм-аутом по умолчанию, равным 5 минутам удаленного взаимодействия (ServiceFabric.Services.Remoting) между службами.
Доступна версия 2 удаленного взаимодействия, и согласно документации Microsoft «Стек удаленного взаимодействия V2 работает лучше».
После обновления до V2 одним из возможных способов решения проблемы является увеличение времени ожидания
new ServiceProxyFactory((c) => new FabricTransportServiceRemotingClientFactory(
new FabricTransportRemotingSettings() {
OperationTimeout = TimeSpan.FromMinutes(30)
})))
Но это только увеличит время ожидания и не удалит его полностью.
Другой способ решить эту проблему - запустить работника, который обрабатывается непосредственно в сервисе, который использовался с удаленным взаимодействием, и ждать его завершения. Таким образом, решение не связано с таймаутом удаленного взаимодействия.
Например:
, заменив это:
await restoreClient.RestoreAsync(id, name).ConfigureAwait(false);
на
var workerId = StartANewWorker()
JobState jobState;
do {
//poll for the status of the new worker
var workerStatus = GetStatusOfTheWorker(workerId);
await Task.Delay(1000).ConfigureAwait(false);
if (workerStatus == Failed) {
throw new Exception("Something went wrong");
}
} while (workerStatus != Finished);
несколько причин:
1) div более семантически корректен в большинстве случаев. люди, которые кодируют свои сайты в структуре таблиц, не используют таблицы для того, для чего они созданы, то есть для табличных данных. div представляет собой «разделение» или раздел страницы, поэтому размещение элементов в div более корректно.
2) div более гибкие, их проще стилизовать и поддерживать. вам не нужно писать 3) сайты со структурой таблиц просто безобразны:) Ключевым моментом здесь является их использование для макета. Заметьте, нет ничего плохого в таблицах для табличных данных . Вот для чего они. Но когда вы используете таблицы для разметки, вы создаете очень жесткую структуру страницы, которая обычно не очень хорошо работает с различными размерами экрана, пользовательскими агентами (например, мобильными браузерами или программами чтения с экрана для слепых людей). Особенно в последнем случае вы уничтожаете любой порядок, в котором контент должен быть прочитан пользователю). К сожалению, таблицы по-прежнему являются одним из самых надежных механизмов для разметки страницы, поскольку реализации практически не отличаются друг от друга, и они работают безупречно более десяти лет - здесь CSS - это совершенно другой вопрос. Но в основном все сводится к следующему: Поскольку таблица несет семантическое значение - то, что вы в данный момент отображаете табличные данные, как и h1, означает, что у вас есть заголовок. Поэтому, если вы используете таблицы для форматирования выходных данных, вы вводите в заблуждение интерпретацию семантики вашего кода. Это может, например, привести к проблемам доступности для людей, использующих программу чтения с экрана. большинство людей продолжает рассказывать о том, как таблица должна использоваться только для данных, и это приводит к проблемам с производительностью, когда вы используете ее в целях компоновки. Кроме того, он должен быть более гибким, потому что вы можете сделать Однако, IMHO, это не стоит усилий. Особенно, когда у вас есть столбцы элементов управления, которые должны правильно совмещаться с соответствующими им надписями, это займет слишком много времени, чтобы все выстроилось правильно. Использование div это лучше, чем использование таблицы, потому что она проста в управлении в проекте, и она может быть контейнером для элементов управления, чем таблица, и таблица в основном используется для группировки данных со схожей структурой, поэтому она предназначена для этой задачи, но div в основном считается контейнером, чем стол.
Я обнаружил разницу между сборкой множества элементов управления и тем, что я могу управлять контейнером, но в таблице я запутался, потому что мне нужно вставить внутрь и его зацикливание внутри друг друга. Использование таблиц для верстки было революционным для веб-дизайна, но это было пятнадцать лет назад, и других альтернатив не было. Именно из-за этой истории таблицы даже рассматриваются сегодня как макет. Макет на основе CSS гораздо более гибкий, чем макет на основе таблиц. Есть еще несколько вещей, которые легче выполнить с помощью таблиц, но с другой стороны, есть много вещей, которые очень легко сделать с помощью CSS, которые очень сложны или невозможны для таблиц.
Text here td> tr> table> каждый раз, когда вы хотите что-то сказать, когда вы можете просто написать
Таблицы
CSS Layout
. Есть много тегов, которые имеют значение и должны использоваться как таковые. Например, не используйте
.
Похожие вопросы: