Можно ли указывать custom время жизни кэша для определенного поля?

Главные вкладки

Аватар пользователя rgzrgz1 rgzrgz1 20 марта 2018 в 14:23

Всем привет. Есть поле, в котором через php get берется афиша. В API сервиса рекомендуется не больше 15 запросов в минуту. (Думаю иначе возможен бан).

Вопрос такой, можно ли в Друпал сделать время кэша для определенного поля, скажем 40 минут? Может быть в самом поле указывать через php чтото вроде:

<?php
$cache_lifetime 
3200
$cache_file "cache/afisha"
?>

Комментарии

Аватар пользователя fairrandir fairrandir 20 марта 2018 в 14:50

Не совсем понятно, что имеется в виду под полем.
Тем не менее стандартная функция cache_set позволяет указывать lifetime.

Обычный алгоритм такой - получить данные из кэша, если в кэше пусто - дёрнуть апи и сложить данные в кэш.

Аватар пользователя rgzrgz1 rgzrgz1 20 марта 2018 в 15:24

fairrandir wrote:

Не совсем понятно, что имеется в виду под полем.

php Друпал поле в типе материала. Из этих полей вьюшка дергает данные. Если нужна афиша - вьюшка вытянет это поле. Но если будет много запросов, боюсь что забанит.

fairrandir wrote:

Тем не менее стандартная функция cache_set позволяет указывать lifetime.
Обычный алгоритм такой - получить данные из кэша, если в кэше пусто - дёрнуть апи и сложить данные в кэш

это в template.php указывается функция?

Аватар пользователя fairrandir fairrandir 20 марта 2018 в 15:50

rgzrgz1 wrote:

это в template.php указывается функция?

Это скорее там, где:
rgzrgz1 wrote:

вьюшка вытянет это поле.

То есть перед тем, как дёргать удалённые данные. Вот неплохая статья - https://www.lullabot.com/articles/a-beginners-guide-to-caching-data-in-d...

Аватар пользователя rgzrgz1 rgzrgz1 20 марта 2018 в 16:54

fairrandir wrote:

rgzrgz1 написал:

это в template.php указывается функция?

Это скорее там, где:

rgzrgz1 написал:

вьюшка вытянет это поле.

То есть перед тем, как дёргать удалённые данные. Вот неплохая статья - https://www.lullabot.com/articles/a-beginners-guide-to-caching-data-in-d...


мало чего понял из этого, темболее в php я не силен.
Нашел функцию в самом вьювс - кэшировать блок. Выстаил там 30 минут. Это же не повлияет на кэширование во вкладке "производительность"? там время жизни кэша указано