Здравствуйте. Пишу небольшой скрипт php, суть такая: юзер на сайте нажимает кнопку "загрузить файл", посылается запрос через ajax, и начинается загружаться файл со стороннего сайта в папку НА СЕРВЕРЕ(не клиенту). После окончания загрузки, php говорит ajax'у что все ОК, тот в свою очередь говорит юзеру, что все ОК В чем сложность: файл может весить +- 1ГБ, загрузка не моментальная, юзер может покинуть страницу, скрипт может не до конца отработать, как вообще узнать, отработал ли скрипт нормально, без ошибок? Я конечно могу проверить, закачался ли файл, но если он не закачался? Как понять, качает ли он, или завис?
1. отвечаете клиенту что мол в очередь поставлена задача, а сами скрипт продолжаете для загрузки файла либо ставите задачу в очередь, ну и сервер обработки очереди 2. делает в бд например таблицу с статусами загрузки, при начале работы скрипта фигачите туда статус загрузки конкретного пользователя, при успехе или неуспехе скрипта записываете нужный статус и извещаете клиента 3. Извещение самое простое - аяксом опять же постоянно запрашиваете статус - как изменился - выводите результат, ну а по правильному - веб сокеты + сервер вебсокетов
вот тут не ясно, как я поставлю задачу в очередь? клиент через ajax обратился на файл допустим ajax_download.php, в нем я посылаю curl запрос на загрузку файла и последующую запись, и как только все это выполнится, скрипт завершит свою задачу, и через ajax пошлет ответ юзеру
ну почитайте - что такое очередь задач, как ее реализуют..... а по простому - в вашем случае, вы сразу ответьте клиенту что все ок - и пусть дальше скрипт работает