@zkk777

Как обновлять файл json на php?

Здравствуйте, хочу написать парсер на php чтобы он брал данные с другого сайта, именно с открытого api и данные были на моем сайте в json, чтобы они отображались на сайте и обновлялись например каждые 15 сек, но как это сделать без постоянного парсинга при обновлении страницы на моем сайте? Раньше я делал это так: собираю данные с чужого сайта во время обновления страницы, но это может занимать какое-то время и затягивать загрузку страницы, а уж тем более если обьем данных большой и это делает сразу несколько человек. В голову приходит только два варианта хранить данные в статическом файле json и физически обновлять его через определенный временный интервал по крону, либо записывать данные в бд и от туда уже выводить на сайт их и так же обновлять по интервалу. Возможно вопрос глупый, надеюсь на помощь.
  • Вопрос задан
  • 136 просмотров
Решения вопроса 1
@rPman
Всегда стремись разделять получение данных бакэндом и выдачу этоих данных на странице, когда это получение медленее чем работа слокальными данными... т.е. всегда кешируй данные, особенно когда инвалидация не строгая.

Отдельный демон (хоть и по крону) опрашивает api, проверяя появление новых данных или изменение. От этого api зависит, в худшем случае, если нет возможности даже даты изменений получить - запрашиваешь все данные, собираешь свой json и берешь из него как строка - хеш например md5, изменился - есть новые данные, значит записываешь json (совет если работаешь с файлами, пиши всегда файл с новым именем, и при запросе - отдавай тот что записал последним, после окончания записи старый файл удаляй, это исключит ошибку если будет запрос на чтение в момент сохранения).

Если api позволяет оценить изменения в данных, то хранить в файле json имеет смысл только если он не большой, иначе да, как то оптимизировать хранение, либо по файлу на объект либо действительно в базе данных, по желанию
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
если твой сайт отдает не тот же самый json, то имеет смысл его распарсить и сохранить данные в базу/файл в требуемом формате. насчет загрузки по крону, тут все зависит от деталей и реализации api: например, если ты загружаешь пункты службы доставки, то лучше добавить задачу в крон, а если тебе нужно получить список друзей пользователя в соц.сети, то крон тут врядли подойдет.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы