Несколько загрузок на сайт одновременно - PullRequest
0 голосов
/ 08 декабря 2011

Я создаю веб-сайт ASP.Net, и веб-сайт принимает PDF в качестве входных данных и обрабатывает их. Я создаю промежуточный файл с определенным именем. Но я хочу знать, если несколько пользователей используют один и тот же сайт одновременно, то как сервер справится с этим.

Как я могу справиться с этим. Будет ли Multi-Threading делать эту работу? Как насчет имен промежуточных файлов, которые я генерирую? Как я могу убедиться, что они не переопределят друг друга. Как добиться производительности?

Извините, если вопрос слишком простой для вас.

1 Ответ

0 голосов
/ 08 декабря 2011

Я не в .NET, но в любом случае это звучит как общая проблема, поэтому вот мои два цента.

Как вы сказали, многопоточность (как правило, разные запросы выполняются в разных потоках) решает большинство подобных проблем, так как каждый вызов метода включает новые объекты, запускаемые в отдельном контексте.

Однако есть исключения: - Синглтон (глобальные) объекты, у которых любая из их операций имеет побочные эффекты - Другие ресурсы (файлы и т. Д.), Это как раз ваш случай.

Так что в случае файлов, я бы обдумал эти (взаимоисключающие) альтернативы:

(1) Никогда не записывайте загруженный файл на диск, вместо этого держите его в памяти и обрабатывайте там (как в байтовом массиве). В этом случае вы используете защиту потока на запрос. Это нельзя применить, если ваши файлы действительно большие.

(2) Выберите очень рандомизированные имена (например, UUID), чтобы записать их во временную папку, чтобы их имена не конфликтовали, если два пользователя загружают одновременно.

Я бы пошел с (1), когда это возможно.

Лучший

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...