Api-маршрут заблокирован огромным процессом в цикле событий - PullRequest
0 голосов
/ 16 октября 2019

У меня есть API восстановления, похожий на этот (я пишу в псевдокоде):

server.post('api/import') 
{

  database.write(status of this file.id is pending)
  fileModification(req.file)
  res.status(200)
  res.send(import has started)
} //here I do some file modifications and then i import it to database
server.get('api/import_info') 
{
  database.select(file status)
} //here I want to see status (is file imported or pending(process is not finished yet))

//In another module after import is finished I update database to 
database.write(file.id import status is completed)

Импорт файла - это процесс, который занимает около 2 минут, но даже я не жду, пока он завершится в API/ import, когда я пытаюсь вызвать маршрут 'info', мой API заблокирован

Возможно ли, что цикл событий заблокирован или, возможно, соединение неправильно закрыто.

Заранее спасибо

1 Ответ

0 голосов
/ 16 октября 2019

У меня есть некоторые идеи по вашему вопросу.

  1. вы можете использовать модуль кластера кластер , модуль кластера можно создать процессзависит от вашего ядра процессора. Когда процесс заблокирован, процесс Others все еще может работать.
  2. вы можете создать новый процесс в вашем API, используйте новый процесс для обработки вашей задачи.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...