ФорумПрограммированиеПыхнуть хотите?Готовые решения → Git hook sync modification time to last commit time [Linux, FreeBSD, Mac OS]

Git hook sync modification time to last commit time [Linux, FreeBSD, Mac OS]

  • phpdude

    Сообщения: 26617 Репутация: N Группа: в ухо

    Spritz 10 марта 2014 г. 10:07

    Возникла проблемка, которая свойственна использованием всяких авто-компрессоров, а-ля django-compressor (ну у нас свой, похапе компрессор :D)

    когда несколько backend серверов, статика минифицируется и комбинируется в файлики с хеш-именами.

    Если у вас больше одного сервера, то при синхронизации с git'а у всех файлов разное mtime, соответственно если балансер кидает человека с одного на другой бекенд - разные кеш файлы для статики, ему приходится грузить эти комбайны несколько раз для одних и тех же файлов. Что в общем то туповато и непрактично отражается на времени последующих загрузок страниц.

    Исходная проблема очевидна - разные mtime у файлов на разных серверах.

    Гит не позволяет "магически" синхронизовать это, поэтому костыляем :-)

    Выложил решение - заебался искать сам, ничего путнего нет ... вдруг ктото также столкнется. Изза этой причине балансер работает в режиме ip hash, а не round robin, что в общем то сводит на нет всю архитектуру серверную.

    https://gist.github.com/phpdude/9464925

    Сапожник без сапог
  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 10 марта 2014 г. 14:04, спустя 3 часа 56 минут 55 секунд

    Нафиг mtime, компрессор должен хеш строить по содержимому скомпрешенных файлов. Так делает django_compressor. Он еще учитывает содержимое, которое ты обернул его тегами в шаблоне

    Спустя 270 сек.

    Гит тоже не нужен, хватит рсинка

    adw/0
  • phpdude

    Сообщения: 26617 Репутация: N Группа: в ухо

    Spritz 10 марта 2014 г. 14:14, спустя 10 минут 41 секунду

    Нафиг mtime, компрессор должен хеш строить по содержимому скомпрешенных файлов. Так делает django_compressor. Он еще учитывает содержимое, которое ты обернул его тегами в шаблоне

    @adw0rd, ДА ТЫ НЕ ПОВЕРИШЬ!!!!

    django-compressor/django-compressor [github.com]

    django-compressor/django-compressor [github.com]

    django-compressor/django-compressor [github.com]

    django-compressor/django-compressor [github.com]

    django-compressor/django-compressor [github.com]

    Спустя 99 сек.

    Спустя 270 сек.

    Гит тоже не нужен, хватит рсинка

    @adw0rd, а это ты к чему? пыха деплоится рсинком?)) файлы - статика, я не про media (в понятии жанги), я про верстку и жс всякие

    Сапожник без сапог
  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 10 марта 2014 г. 14:18, спустя 3 минуты 15 секунд

    Исходники лежат в гите, копрессы это временные файлы, зачем они в гите?

    adw/0
  • phpdude

    Сообщения: 26617 Репутация: N Группа: в ухо

    Spritz 10 марта 2014 г. 14:19, спустя 1 минуту

    Нафиг mtime, компрессор должен хеш строить по содержимому скомпрешенных файлов. Так делает django_compressor. Он еще учитывает содержимое, которое ты обернул его тегами в шаблоне

    зачем контент сверять? это не страшно же, если закомитится тотже самый файл и обновится, это не важно, а вот сложность чтения (пары мегабайт может быть легко) всех js + css при КАЖДОМ ЗАПРОСЕ страницы - это facepalm. mtime тут как нельзя кстати

    Спустя 102 сек.

    Исходники лежат в гите, копрессы это временные файлы, зачем они в гите?

    @adw0rd, а, я сразу не понял что ты меня за нуба считаешь :D

    у меня не offline компиляция, в гите только исходные js/css и тп. при каждом запросе они минифицируются и комбайнятся если не были готовы заранее. lazy cache.

    Сапожник без сапог
  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 10 марта 2014 г. 14:21, спустя 2 минуты 35 секунд

    Про django_compressor дома почитаю, не удобно с мобилки код инспектить

    adw/0
  • Sinkler

    Сообщения: 9658 Репутация: N Группа: в ухо

    Spritz 10 марта 2014 г. 14:22, спустя 1 минуту 9 секунд

    оффтоп: меня здесь при каждом новом сообщении кидает к первому из непрочитанных. ссылка последняя такая была http://pyha.ru/forum/topic/8538.1#msg188906

  • phpdude

    Сообщения: 26617 Репутация: N Группа: в ухо

    Spritz 10 марта 2014 г. 14:23, спустя 41 секунду

    Исходники лежат в гите, копрессы это временные файлы, зачем они в гите?

    @adw0rd, да и синкать их не надо, их балансер кеширует прозрачно со всех серверов)

    Спустя 42 сек.

    Про django_compressor дома почитаю, не удобно с мобилки код инспектить

    @adw0rd, я завтра буду, почитай, подготовься !)))

    щас спать скоро

    Сапожник без сапог
  • Sinkler

    Сообщения: 9658 Репутация: N Группа: в ухо

    Spritz 10 марта 2014 г. 14:24, спустя 44 секунды

    оффтоп: меня здесь при каждом новом сообщении кидает к первому из непрочитанных. ссылка последняя такая была http://pyha.ru/forum/topic/8538.1#msg188906

    а вот после этого уже нормально

  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 10 марта 2014 г. 14:24, спустя 14 секунд

    Дома отвечу :)

    adw/0
  • phpdude

    Сообщения: 26617 Репутация: N Группа: в ухо

    Spritz 10 марта 2014 г. 14:25, спустя 37 секунд

    оффтоп: меня здесь при каждом новом сообщении кидает к первому из непрочитанных. ссылка последняя такая была http://pyha.ru/forum/topic/8538.1#msg188906

    @Sinkler, а куда должно? на последнее или дать возможность ТЕБЕ прочитать)))

    Сапожник без сапог
  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 10 марта 2014 г. 14:25, спустя 47 секунд

    а вот после этого уже нормально

    Понял траблу, исправлю

    adw/0
  • phpdude

    Сообщения: 26617 Репутация: N Группа: в ухо

    Spritz 10 марта 2014 г. 14:26, спустя 30 секунд

    Дома отвечу :)

    @adw0rd, проблема такая есть, не всегда есть возможность оффлайн компрессии))

    Сапожник без сапог
  • vasa_c

    Сообщения: 3127 Репутация: N Группа: в ухо

    Spritz 11 марта 2014 г. 5:29, спустя 15 часов 2 минуты 59 секунд

    git не сразу на все сервера заливает чтоле?
  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 11 марта 2014 г. 7:38, спустя 2 часа 8 минут 56 секунд

    А разве rsync не позволяет mtime исходный копировать?

    adw/0

Пожалуйста, авторизуйтесь, чтобы написать комментарий!