We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 5676
    • 4 Posts
    На сайте имеется календарик, делает весьма много запросов к базе и поэтому вызывается на странице как кешируемый сниппет. Но вот в 12 часов наступает новый день, а выделенным остается предыдущий(по понятным причинам). И через 2 часа ситуация не меняется, только принудительная очистка кеша помогает.
    Решил выполнять очистку кеша ровно в 12 с помощью планировщика crontab, который вызывает несложный скрипт. Вот его код:
    include_once('manager/includes/document.parser.class.inc.php');
    include_once ('manager/includes/config.inc.php');
    $modx = new DocumentParser;
    $modx->clearCache();

    Проверил - работает. Создал задачу в crontab, успешно выполнилась в указанное время. Но кеш не очистился, текущий день календаря прежний. Думаю дело в том, что MODx не позволяет выполниться скрипту напрямую, а только по обращению через сайт. Какие идеи как с этим бороться?
    И еще вопросы по кешу: по какому принципу MODx его обновляет? где можно поменять время жизни кеша?
      • 785
      • 2,113 Posts
      Для очистки кэша можно попробовать такие команды

      include_once MODX_MANAGER_PATH."processors/cache_sync.class.processor.php";
      $sync = new synccache();
      $sync->setCachepath("../assets/cache/");
      $sync->setReport(false);
      $sync->emptyCache();

      только пути подправить
        Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
        Статьи о MODx, регулярно новые публикации
        • 5676
        • 4 Posts
        Спасибо, кажется так работает. Правда все равно пришлось создавать объект класса DocumentParser.
        И все же, хотелось бы узнать подробнее про работу кеширования в MODx. Где можно настроить время жизни кеша например?
          • 785
          • 2,113 Posts
          Кэшируются страницы при первом обращении к ним, и очищается кэш при явной команде или изменении ресурсов. Никакого времени жизни нет – если ничего не предпринимать, кэш будет вечным.
            Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
            Статьи о MODx, регулярно новые публикации
            • 5676
            • 4 Posts
            Понятно. Ну в таком случае надеюсь в Revolution сделают более гибкий механизм. Чтобы не пришлось подобные грабли придумывать smiley