У меня есть приложение, которое запускает длительные процессы в узле. Я ограничиваю эти длительные процессы одним пользователем.Узел с Express: хранение переменных сеанса, несколько обновлений response.status
Когда пользователь начинает длительный процесс я
req.session.busy = true;
req.session.save();
Когда процесс закончен я
req.session.busy = false;
res.status(200).json({
done: true
});
Если пользователь пытается запустить еще один длительный процесс, в то же время я
if (req.session.busy) {
res.status(200).json({
busy: true
});
}
Что я хотел бы сделать, это отправить ответ, чтобы подтвердить, что запрос был получен ,
res.status(200).json({
process_started: true
});
Но это завершает ответ. Я больше не могу установить busy = false в конце текущего процесса и отправить ответ, что процесс завершен.
Есть ли способ сохранить сеанс, отправить статус, на который был получен запрос, а затем отправить ответ статуса (200), когда процесс будет завершен?
Возможно, существует еще один статус, чем 200, который сохранит ответ в узле.
Я попытался
res.status(100).json({
process_started: true
});
Надеясь, что код состояния HTTP 100 - неформальный (продолжение) будет делать трюк, но не сигары. Приложение будет сбой, когда я попытаюсь отправить статус (200) после этого. Ошибка: невозможно настроить заголовки после их отправки.
Возможно посмотреть в веб-сокетов (socket.io для узла) – tymeJV