За последние 24 часа нас посетили 8803 программиста и 479 роботов. Сейчас ищут 217 программистов ...

Узнать, отработал ли скрипт

Тема в разделе "Прочие вопросы по PHP", создана пользователем SKAJIbnEJIb, 16 сен 2020.

  1. SKAJIbnEJIb

    SKAJIbnEJIb Новичок

    С нами с:
    16 сен 2020
    Сообщения:
    3
    Симпатии:
    0
    Здравствуйте. Пишу небольшой скрипт php, суть такая:
    юзер на сайте нажимает кнопку "загрузить файл", посылается запрос через ajax, и начинается загружаться файл со стороннего сайта в папку НА СЕРВЕРЕ(не клиенту). После окончания загрузки, php говорит ajax'у что все ОК, тот в свою очередь говорит юзеру, что все ОК

    В чем сложность:
    файл может весить +- 1ГБ, загрузка не моментальная, юзер может покинуть страницу, скрипт может не до конца отработать, как вообще узнать, отработал ли скрипт нормально, без ошибок?
    Я конечно могу проверить, закачался ли файл, но если он не закачался? Как понять, качает ли он, или завис?
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    2.410
    Симпатии:
    467
    Адрес:
    Татарстан
    1. отвечаете клиенту что мол в очередь поставлена задача, а сами скрипт продолжаете для загрузки файла либо ставите задачу в очередь, ну и сервер обработки очереди
    2. делает в бд например таблицу с статусами загрузки, при начале работы скрипта фигачите туда статус загрузки конкретного пользователя, при успехе или неуспехе скрипта записываете нужный статус и извещаете клиента
    3. Извещение самое простое - аяксом опять же постоянно запрашиваете статус - как изменился - выводите результат, ну а по правильному - веб сокеты + сервер вебсокетов
     
    SKAJIbnEJIb нравится это.
  3. SKAJIbnEJIb

    SKAJIbnEJIb Новичок

    С нами с:
    16 сен 2020
    Сообщения:
    3
    Симпатии:
    0
    вот тут не ясно, как я поставлю задачу в очередь?
    клиент через ajax обратился на файл допустим ajax_download.php, в нем я посылаю curl запрос на загрузку файла и последующую запись, и как только все это выполнится, скрипт завершит свою задачу, и через ajax пошлет ответ юзеру
     
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    2.410
    Симпатии:
    467
    Адрес:
    Татарстан
    ну почитайте - что такое очередь задач, как ее реализуют.....
    а по простому - в вашем случае, вы сразу ответьте клиенту что все ок - и пусть дальше скрипт работает
     
  5. SKAJIbnEJIb

    SKAJIbnEJIb Новичок

    С нами с:
    16 сен 2020
    Сообщения:
    3
    Симпатии:
    0
    спасибо. Gearman, то что нужно