Можно ли использовать WF для нагрузочного тестирования? - PullRequest
2 голосов
/ 05 октября 2011

У меня есть веб-сервис, который я хотел бы загрузить, отправив несколько запросов к нему параллельно. Мне пришло в голову, что WF может оказаться полезным инструментом для организации, обладающего гибкостью для быстрого изменения информации о нагрузке / потоке и захвата информации о времени видимым и воспроизводимым способом (вот почему WF хорош, верно?). Из моего прочтения на сегодняшний день кажется, что, несмотря на то, что они называются Parallel и ParallelFor, ни одно из действий не будет запускать вложенные действия параллельно, но будет запускать их последовательно в одном потоке и ожидать завершения всех вложенных действий. Если параллельное действие блокируется, его можно сохранить, и выполнение будет продолжено со следующим параллельным действием.

Этот вопрос / ответ SO говорит о том, что если используется AsyncCodeActivity (то есть, где я могу обратиться к веб-службе), то

AsyncCodeActivity всегда создает блок no persist на время выполнения действия. Это не позволяет среде рабочего процесса сохранять экземпляр рабочего процесса в середине асинхронной работы, а также предотвращает выгрузку экземпляра рабочего процесса во время выполнения асинхронного кода.

Что явно не то, что я хочу. Итак, как я могу использовать WF для выполнения нескольких параллельных запросов к веб-сервису или это SPRH (квадратное колышко круглое отверстие)?

1 Ответ

0 голосов
/ 25 ноября 2011

Я нашел посты Рона Джейкоба на WF4 и параллелизм. Похоже, приведенная выше информация верна лишь частично. Пример проекта Рона содержит несколько полезных тестовых примеров, в том числе ParallelAsyncWorkflowApplication с комментарием Поскольку используется WorkflowApplication, действия будут выполняться в случайных потоках, назначенных пулом потоков CLR .

...