Создание большой карты сайта в Google App Engine?

У меня есть сайт с около 100 000 уникальных страниц.(1) Как мне создать Sitemap для всех этих ссылок?Стоит ли просто перечислять их в большом файле, совместимом с протоколом Sitemap?(2) Необходимо реализовать это в Google App Engine, где существует ограничение на количество запросов в 1000 единиц, и все URL-адреса моего отдельного сайта хранятся в виде отдельных записей.Как мне решить эту проблему?
4 голоса | спросил demos 7 J000000Wednesday10 2010, 13:39:23

3 ответа


0
Карты сайта должны быть не более 10 МБ и содержать не более 50 000 URL-адресов, так что вам нужно как-то разбить их.Вам понадобится какая-то стратегия шардинга.Я не знаю, как выглядят ваши данные, поэтому сейчас, скажем, каждый раз, когда вы создаете сущность страницы, вы присваиваете ей случайное целое число от 1 до 500.Затем создайте индекс Sitemap и выложите ссылку на карту сайта для каждого значения индекса:Наконец, на странице вашего сайта, запросите страницы и выберите случайный индекс.Если у вас есть 100 000 страниц, это даст вам около 200 URL на карту сайта.Немного другая стратегия заключается в том, чтобы дать каждой странице автоматически увеличивающийся числовой идентификатор.Для этого вам необходим счетчик, который блокируется транзакциями и увеличивается каждый раз при создании новой страницы.Недостатком этого является то, что вы не можете распараллеливать создание новых сущностей страниц.Положительным моментом является то, что у вас будет немного больший контроль над тем, как выстраиваются ваши страницы, поскольку вашим первым файлом карты могут быть страницы 1-1000 и т. Д.
ответил Drew Sears 7 J000000Wednesday10 2010, 18:42:22
0
Вы можете использовать курсоры запросов, чтобы обойти ограничение в 1000 элементов запроса;хотя даже использование курсоров, вероятно, не решит полностью вашу проблему, поскольку создание карты сайта с 100 000 элементов в ней может легко превысить количество времени, которое разрешено выполнить одному запросу.Кроме того, динамическая генерация карты сайта может легко израсходовать всю или большую часть вашей квоты ресурса.Если ваши данные не очень динамичны, я бы рассмотрел создание статического файла Sitemap и включение его в ваш пакет развертывания.Даже если ваши данные очень динамичны, вы, вероятно, захотите принять стратегию их восстановления только один раз в день и выполнить развертывание для размещения на сервере.
ответил Adam Crossland 7 J000000Wednesday10 2010, 18:26:16
0
У меня была похожая проблема, но вместо этого, чтобы заново изобрести колесо, я просто подключил генератор Sitemap Google http://sitemap-generators.googlecode.com/svn/trunk/docs/en/sitemap-generator.html .Это сработало для меня, так как мое приложение основано на Python.
ответил themihai 19 MarpmMon, 19 Mar 2012 15:02:12 +04002012-03-19T15:02:12+04:0003 2012, 15:02:12

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132