Это разумный метод кэширования? - PullRequest
0 голосов
/ 26 февраля 2009

Я использую PHP для рендеринга LaTeX в pngs как часть CMS, мне нужен какой-то простой механизм кэширования, потому что серверу требуется около 2 секунд для рендеринга png. Я беру сырой TeX и запускаю его через функцию md5, затем вставляю хэш в базу данных вместе с текущей меткой времени и использую .png в качестве имени файла. Каждый раз, когда к изображению обращаются, время обновляется.

Ответы [ 4 ]

2 голосов
/ 26 февраля 2009

Для этого типа сценария я предпочитаю использовать временный каталог на диске.

По запросу:

if the file doesn't exist
    render it to the file
fpassthru() the file from disk
1 голос
/ 26 февраля 2009

Звучит нормально. Если бы вы могли изменить имя .png, скажем, идентификатор базы данных или даже сам хэш, чтобы изображение могло быть также кэшировано на стороне клиента.

0 голосов
/ 26 февраля 2009

Если .png могли измениться после того, как они были отрисованы, я думаю, вы также должны учитывать это, используя какое-то наблюдение, когда обновляется .png (проверка потока, установка методов для обновления последнего измененного ключа или что-то еще :))

0 голосов
/ 26 февраля 2009

Хм, я думаю, что это хороший подход, но вы, вероятно, захотите выполнить дополнительную обработку на LaTeX, прежде чем хешировать его. В противном случае изменения в пробелах (и, возможно, комментарии и некоторые другие вещи, в зависимости от вашего метода ввода) приведут к различным хешам.

Кроме того, какова цель обновления отметки времени? Как часть пакетного метода, который удаляет PNG, к которым давно не обращались?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...