Я хотел бы использовать libev для потокового сервера, который я пишу.
Вот как все должно работать:
- клиент открывает TCP-сокет для подключения к серверу
- сервер получает соединение
- клиент отправляет список изображений, которые ему нужны
- запрос на чтение сервера
- сервер перебирает все изображения
- сервер читает изображение с NAS
- сервер обрабатывает метаданные файла изображения
- сервер отправляет данные изображения клиенту
Я нашел пример кода, которыйпозволяет мне читать и писать из сокета, используя события ввода-вывода libev (epoll под капотом).Но я не уверен, как справиться с чтением из NAS и обработкой.Это может занять некоторое время.И я не хочу блокировать сервер, пока это происходит.
Должно ли это быть сделано в другом потоке, и поток должен отправить данные изображения обратно клиенту?
Я былПланирование использования пула потоков.Но, возможно, libev может поддержать этап обработки без блокировки?
Любые идеи или помощь будут с благодарностью!