Долгосрочные задачи на веб-сервере - PullRequest
0 голосов
/ 11 марта 2019

Я использую fasthttp, чтобы сделать HTTP-сервер в Go. Когда пользователь посещает определенный маршрут, скажем /foo Я хочу запустить очень долго выполняемое задание (например, 10м +), но немедленно ответить на запрос. Эта длительная задача должна продолжаться в фоновом режиме до тех пор, пока она не завершится, даже если функция вернется или пользователь прервет соединение.

Какой лучший способ сделать это в Go?

Насколько я могу сказать, Goroutines, вероятно, не правильная вещь, потому что они предназначены для короткого выполнения асинхронного кода, или я ошибаюсь в этом?

1 Ответ

2 голосов
/ 11 марта 2019

Нет: программа может длиться столько, сколько вы хотите (и основная программа): вам нужно только знать, как упомянуто здесь , когда прекратить эту программу.

В вашем случае вам придется обнаружить, что ваше соединение было прервано пользователем, как в « Закрыть чтение программы из соединения TCP без закрытия соединения ».

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