Size: a a a

2020 December 17

AL

Andrey L in Tarantool
в общем случае, закончится всё своей механизьмой под свою организацию кода
источник

AO

Andrey Oleynik in Tarantool
А есть пример, я не понял что такое загрузка «пачками»? Я наивно предполагал, что eval на файл полностью перезагружает его и его зависимости.
источник

AL

Andrey L in Tarantool
пачками реализаций горячего обновления, но ни одна тебе не заходит
источник

AL

Andrey L in Tarantool
как вариант:
- перед стартом запоминаешь загруженные модули
- запускаешь свои (циклом из особой папочки), обнаруживаешь те модули, что появились - их надо будет выгружать
(+ аналогично стартуешь файберы и прикапываешь их имена для остановки)

при обновлении:
- обнуляешь модули в глобальном пространстве имен, куда их сунул ради вызова функций
- останавливаешь прикопанные файберы
- чистишь package.loaded от запомненных своих модулей
- стартуешь всё взад
источник

AL

Andrey L in Tarantool
в промежутках - какие-то свои плюшки по инициализации, корректной остановке и т.п.
источник

AL

Andrey L in Tarantool
у меня, например, есть невыгружаемый модуль для стейтов и некоторых объектов, которые не должны исчезать
источник

AO

Andrey Oleynik in Tarantool
Andrey L
как вариант:
- перед стартом запоминаешь загруженные модули
- запускаешь свои (циклом из особой папочки), обнаруживаешь те модули, что появились - их надо будет выгружать
(+ аналогично стартуешь файберы и прикапываешь их имена для остановки)

при обновлении:
- обнуляешь модули в глобальном пространстве имен, куда их сунул ради вызова функций
- останавливаешь прикопанные файберы
- чистишь package.loaded от запомненных своих модулей
- стартуешь всё взад
Спасибо, покопаю в эту сторону.
источник

AL

Andrey L in Tarantool
Andrey L
как вариант:
- перед стартом запоминаешь загруженные модули
- запускаешь свои (циклом из особой папочки), обнаруживаешь те модули, что появились - их надо будет выгружать
(+ аналогично стартуешь файберы и прикапываешь их имена для остановки)

при обновлении:
- обнуляешь модули в глобальном пространстве имен, куда их сунул ради вызова функций
- останавливаешь прикопанные файберы
- чистишь package.loaded от запомненных своих модулей
- стартуешь всё взад
Мне кажется, что можно сделать обобщенный механизм (на основе фиксированного дерева проекта). Но раз его нет, значит он не такой уж и универсальный, и каждый предпочитает свой велосипед.
источник

AO

Andrey Oleynik in Tarantool
В октопусах ещё был хот релоад, а вот в тарантул не завезли.
источник

KN

Konstantin Nazarov in Tarantool
Andrey L
Мне кажется, что можно сделать обобщенный механизм (на основе фиксированного дерева проекта). Но раз его нет, значит он не такой уж и универсальный, и каждый предпочитает свой велосипед.
в cartridge есть такой функционал
источник

KN

Konstantin Nazarov in Tarantool
источник

KN

Konstantin Nazarov in Tarantool
вы смерджили в итоге?
источник

AL

Andrey L in Tarantool
Konstantin Nazarov
в cartridge есть такой функционал
небось такой же, как те два, что были
источник

KN

Konstantin Nazarov in Tarantool
источник

KN

Konstantin Nazarov in Tarantool
Andrey L
небось такой же, как те два, что были
те два это какие?
источник

AL

Andrey L in Tarantool
ухх.. ну можно поискать по чату. Есть две реализации горячего обновления, на которые раньше всегда ссылались. Я их курил, чтобы понять суть.
источник

KN

Konstantin Nazarov in Tarantool
вот тут примерно то что нужно @aoleynik , более или менее из коробки
источник

KN

Konstantin Nazarov in Tarantool
скоро будет релиз нового cartridge (в течение 2-х недель), можно будет подбирать и тестировать
источник

KN

Konstantin Nazarov in Tarantool
ничего самому особенно не нужно мудрить, оно просто работает и перезагружает код ролей и их зависимости
источник

AO

Andrey Oleynik in Tarantool
Konstantin Nazarov
вот тут примерно то что нужно @aoleynik , более или менее из коробки
Спасибо, посмотрю.
источник