Может быть, я читаю вопрос и интерпретирую его странным образом, но почему вы не можете прочитать файл в базу данных и сохранить в таблице текущую строку файла, через которую вы завершили.Затем вы можете отслеживать свои успехи через БД и просто отправлять небольшие объекты json, сообщающие пользователю, как далеко вы находитесь.Таким образом, если их соединение обрывается, вы можете продолжать обрабатывать их запрос, а если они вернутся позже, вы можете уведомить их о том, как далеко продвигается задание.Кроме того, если подключается несколько клиентов, вы можете использовать базу данных для постановки в очередь и регулирования (путем сериализации) рабочей нагрузки.Или, если пользователь соединяет промежуточное задание с другим файлом, его новый запрос будет поставлен в очередь после текущего задания.