Сервер не отвечает после запуска задания laravel asyn c - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть веб-приложение, которое принимает CSV-файлы (большие файлы> 2000000 строк), выполняет статистический анализ и создает CSV-файл с равным количеством строк в качестве вывода. Весь процесс линий l oop находится внутри работы. Я использую laravel 6,9. Мой драйвер очереди настроен на базу данных. вот что происходит:

Я отправляю свой файл и параметры для анализа через jquery. Сервер выбирает запрос, отправляет задание, используя что-то вроде этого в моем контроллере:

IndexEstimatorJob::dispatch($indexEstimator)->delay(now()->addSeconds(3));

Браузер получает ответ, что означает, что он работает asyn c, и перенаправляет меня на страницу, где я хочу для просмотра рабочих мест, которые выполняются. Дело в том, что пока задание запускается в асинхронном режиме c и меня перенаправляют на другую страницу, когда я пытаюсь зайти на другую страницу, мой браузер ожидает ответа сервера навсегда.

Это ресурсы сервера проблема? Могу ли я как-то установить приоритет задания так, чтобы он работал медленнее, но сервер не отвечал на запросы?

Есть идеи?

1 Ответ

0 голосов
/ 23 апреля 2020

ну спасибо за ваши комментарии людям. Я разместил этот вопрос, главным образом, чтобы получить комментарий о том, как я использовал очередь, так как до сих пор не использовал ее. В конце концов, виновником был сервер. Казалось, что загрузка процессора была максимальной во время синтаксического анализа файла, поэтому сервер не отвечал, пока не были завершены вычисления. Удвоив выделенное количество процессоров, проблема была решена, поэтому, я думаю, я правильно использовал очередь.

Еще раз спасибо за ваше время.

PS @AnujShretha нет, это не было проблемой с памятью. У меня есть уделил много внимания тому, как я анализирую файл и каждую строку, чтобы не тратить ресурсы, это был процессор, который не может быть рассчитан так легко. Еще раз спасибо

...