Comments 16
На превью статьи не хватает двух слонов :)
Это just for fun или рабочая задача? Для каких целей используется очистка файлового кеша с помощю SQL?
Это just for fun или рабочая задача? Для каких целей используется очистка файлового кеша с помощю SQL?
+1
Вероятно, всё же будет just for fun.
+1
Готов предположить, что в БД есть логика (триггеры, процедуры), и вот там надо сбрасывать кеш. Была подобная ситуация, только с memcached из Oracle PL/SQL. Вполне себе реальная задача, а не just for fun.
Косяк, конечно, в том, что создатель кеша (PHP-что-то-там) и инвалидатор кеша (PostgreSQL) находятся в разных слоях архитектуры, и тем размазывают ответственность за кеш (ну или данные — как посмотреть). Но это исправлять дольше и дороже.
Косяк, конечно, в том, что создатель кеша (PHP-что-то-там) и инвалидатор кеша (PostgreSQL) находятся в разных слоях архитектуры, и тем размазывают ответственность за кеш (ну или данные — как посмотреть). Но это исправлять дольше и дороже.
0
Я тоже не могу себе представить, зачем такое может понадобится.
Могу предложить лишь альтернативный вариант, не такой сложный в поддержке: postgres ставит у себя флаг того, что надо сбросить кеш (в крайнем случае в однострочной таблице). Это делается триггером либо через ту же процедуру clear_cache. В php приложении поднимается демон и периодически (пусть в 30 секунд) проверяется значение этого флага. Если флаг взведен — очистить кеш, сбросить флаг.
Могу предложить лишь альтернативный вариант, не такой сложный в поддержке: postgres ставит у себя флаг того, что надо сбросить кеш (в крайнем случае в однострочной таблице). Это делается триггером либо через ту же процедуру clear_cache. В php приложении поднимается демон и периодически (пусть в 30 секунд) проверяется значение этого флага. Если флаг взведен — очистить кеш, сбросить флаг.
+3
Да, я правильно понимаю, что setuid(0) — это переключение текущего юзера на рут?
А если вдруг команда окажется более 254 символов?
Я вижу огромное количество мест в текущем решении, где можно себе в будущем выстрелить в ногу. Так по-моему делать точно нельзя.
А если вдруг команда окажется более 254 символов?
Я вижу огромное количество мест в текущем решении, где можно себе в будущем выстрелить в ногу. Так по-моему делать точно нельзя.
+3
Мсье знает толк в извращениях (с)
* Запустить /bin/rm напрямую?
* Сделать кэш доступным для удаления из-под пользователя БД? Группы, права и прочее.
* Запустить /bin/rm напрямую?
* Сделать кэш доступным для удаления из-под пользователя БД? Группы, права и прочее.
0
Зачем? Вы реально этим пользуетесь?
+3
А это есть где-то в продакшене?
Хороший человек ведь всегда может сделать ./sysutils-core «clear_cache;rm -rf /»
Хороший человек ведь всегда может сделать ./sysutils-core «clear_cache;rm -rf /»
0
Коммент про трамвай.
0
www.hagander.net/talks/
Data driven cache invalidation (slightly updated), JDCon-East, New York City, NY, March 2011 and EuroPython 2011, Florence, Italy (+ scripts)
че-то правда у него пдфка не грузится, а
скрипты скачиваются
вот еще видео
ep2013.europython.eu/conference/talks/data-driven-cache-invalidation
суть в PGQ
Data driven cache invalidation (slightly updated), JDCon-East, New York City, NY, March 2011 and EuroPython 2011, Florence, Italy (+ scripts)
че-то правда у него пдфка не грузится, а
скрипты скачиваются
вот еще видео
ep2013.europython.eu/conference/talks/data-driven-cache-invalidation
суть в PGQ
0
wiki.postgresql.org/wiki/PGQ_Tutorial
на пхп потребитель pgq тоже есть
там есть нормальный демон
github.com/dimitri/libphp-pgq
SystemDaemon
Фонтейн, чувак живой, всё норм
на пхп потребитель pgq тоже есть
там есть нормальный демон
github.com/dimitri/libphp-pgq
SystemDaemon
Фонтейн, чувак живой, всё норм
0
Sign up to leave a comment.
Сброс PHP-кеша через SQL-запрос или из пушки по воробьям