Support » Plugin: CyberSEO Lite - RSS, News Feeds, Video Feeds, Autoblogging, SEO and More! » Крон обходит не все rss фиды

  • Resolved dyba03

    (@dyba03)


    Крон выставлен обходить фиды каждые 8 минут. Добавлено около 20 фидов. И вот во время срабатывания крон обходит почему-то не все фиды, а только первые 5. Через пару срабатываний крона он обходит еще парочку (не учитывая первых 5). Но вот до самого конца фидов он не доходит и за сутки. В итоге получается, что 5 фидов обновляются (проверяются на новые посты) как и положено, каждые 8 минут. Еще фидов 5-7 обновляются как повезет (крон дойдет) где-то раз в час-полтора. А остальные фиды вообьще не обновляются.
    Если вручную сделать Pull selected feeds now! для тех фидов, что не обновляются, то они успешно будут обновлены и в случае новых постов добавлены.
    Не пойму в чем проблема? Подскажите, куда копать?

Viewing 7 replies - 1 through 7 (of 7 total)
  • Plugin Contributor CyberSEO

    (@cyberseo)

    Скорее всего, это происходит из-за того, что у вас выставлен лимит времени на выполнение PHP скриптов (обычно это всего 30 секунд). Соотвественно, плагин просто не успевает обработать все фиды за заданный промежуток времени. Я рекомендую вам увеличить максимальное время исполнения скриптов (значение max_execution_time в php.ini) раза в два или в три.

    • This reply was modified 4 years, 11 months ago by CyberSEO.
    Thread Starter dyba03

    (@dyba03)

    Большое спасибо за помощь! Как оказалось действительно крон не успевал обойти все фиды из-за ограничений в конфигах сервера. Пришлось увеличить значение до 300.

    В связи с этим подумал, что было бы удобно, если бы плагин обходил не по списку, который выстраивается в RSS/Atom Syndicator, а по дате последнего обхода списка фидов. Т.е. к примеру, у меня 20 фидов, крон успевает обходить только 5 фидов. Во время следующего запуска он начинает обходить наиболее устаревшие фиды (Last update). Таким образом во второй запуск он обойдет следующие 5 фидов. И так за 4 запуска он обойдет весь список и все будут довольны 🙂 А то сейчас он постоянно обходит одни и те же верхние по списку фиды, а далее по списку не доходит. Это, кстати, было бы очень полезно для тех, кто не имеет выделенный сервер, и не может править конфиги апача и php.ini. Или можно хотя бы сделать такую возможность опциональной: выставил галочку и крон обновляет фиды по дате последнего обновления, не выставил – обходит, как сейчас, по списку.

    Возможно, моя мысль пригодится вам в будущих обновлениях 🙂

    Plugin Contributor CyberSEO

    (@cyberseo)

    Для этого нужно просто выставить фидам разное время обновления (“Check this feed for updates every NNN minutes”). Так, чтобы они не дергались одновременно. Например, один фид – раз в 55 минут, а другой – раз в 60 и т.д.

    • This reply was modified 4 years, 11 months ago by CyberSEO.
    Thread Starter dyba03

    (@dyba03)

    Да, я как раз сейчас пытаюсь играться этим значением у фидов. Но получается не очень (я бы даже сказал плохо), потому что:
    1. Фидов много (например, 50-100).
    2. Фиды новостных сайтов обновляются очень часто (каждые 5-10 минут) и высталять высокий интервал около часа или даже больше (особенно когда фидов много) неправильно.

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

    Plugin Contributor CyberSEO

    (@cyberseo)

    На самом деле, то что вы предлагаете, будет работать точно так же, как интервал. Т.е. если крон срабатывает, скажем, раз в 10 минут и обновление затронет, например, 10 фидов, то следующие 10 будут обновлены только через 10 минут, следующие 10 только через 20 и т.д. Таким образом, фиды не смогут быть обработаны раз в 5-10 минут. Вместо этого, они будут обновляться раз в 50 минут или реже.

    Thread Starter dyba03

    (@dyba03)

    Вроде да, на практике получилось бы, что следующие 10 (11-20) фидов обновятся через 20 минут. А сейчас они как бы вообще не обновляются 🙂 Но если подобрать интервал, они обновятся все-таки, и все равно это будет во второй крон, т.е. через 20 минут. Просто в моем варианте не нужно было бы заморачиваться с подбором интервалов, ведь одно дело подобрать для десяти фидов для двух заходов крона или же подобрать для сотни фидов, которым понадобится около 8-10 заходов. Тут запутаться легко 🙂

    Конечно, проблему выполнения скрипта, когда тот обходит фиды, можно решить увеличением интервала скажем до 1200 (20 минут) и выставить крон на каждые полчаса. Просто я не администратор и не знаю, как такой интервал отразится на нагрузке сервера.

    Вот вы, как автор плагина, какой вариант посоветовали бы:
    1. Крон каждые 10 минут и максимальным исполнением 420 (7 минут) – обойдет за раз примерно 7-10 фидов
    2. Крон каждые 30 минут с исполнением 1200 (20 минут) – обойдет за раз 20-30 фидов.

    Plugin Contributor CyberSEO

    (@cyberseo)

    Конечно же первый. Крон может хоть раз в минуту срабатывать. Если при этом ни один фид не дергается (не пришло время обновления), то и никакой нагрузки на сервер не будет. Чем меньше фидов обрабатывается за раз, тем легче для сервера.

Viewing 7 replies - 1 through 7 (of 7 total)
  • The topic ‘Крон обходит не все rss фиды’ is closed to new replies.