• rust Хура! Наконец дочитала длиннющей Rust Crash Course от хаскелиста, теперь можно писать новый сервак, посему архиважный вопрос: что почитать про reload Code on Fly? Не рассказывайте мне, что этого чуда, которое уже было в ирландке еще в том столетии, нету в русте и поэтому придется ребутить сервер на каждый чих или один раз в сто лет для апгрейдов.
    ♡ recommended by @O01eg

Replies (25)

  • @ermine, Раст — это не интерпретируемый язык.
  • @O01eg, ну и шо? думаешь, в ситечке ничего нельзя перегрузить на ходу?!
  • @ermine, Перегрузи в сишечке на ходу код
  • @O01eg, сошки оно легко перегружает
    а в русте чо делать?
  • @ermine, тоже сошки
  • @O01eg, а есть годная блинная статья на эту тему?
  • @ermine, Не знаю, но есть что-то такое github.com
  • @ermine, на rust даже нельзя сделать подгрузку плагинов без unsafe.
  • @ma1uta, То ли дело все остальные компилируемые в исполняемый код языки, где весь код unsafe
  • @ma1uta, ну я вопрос задала слишком... флеймный, на самом деле хотела в боте сначала что-то такое перегружаемое соорудить
  • @ermine, Перегружать код это вообще не проблема, всегда можно запустить параллельно старую и новую версии. Но до тех пор, пока не делаешь изменения в бд, здесь никакая горячая перезагрузка не поможет
  • @vt, Не поняла!
  • @ermine, Ну старая версия складывает лошадей в табличку лошади, а потом ты решаешь реструктуризировать лошадей в табличку животные, старая версия кода уже никак не сможет работать, если лошадей больше нет
  • @ermine, А сервер должен держать старых пользователей на старой версии кода, пока они не отключились. Соответственно горячая перезагрузка имеет смысл только в случае небольших изменений, что-то серьезное — и по любому придётся перегружать на холодную
  • @vt, Версионинг?
  • @O01eg, прям все-все? Даже ЯП с управляемой памятью и GC? Но даже rust-у это не помогает особо: github.com github.com (сколько ещё нас ждёт исправлений ошибок с утечками памяти с якобы безопасном rust?).
  • @ma1uta, утечка памяти не является unsafe, потому что она не нарушает целостность программы
  • @O01eg, тогда что подразумевается под "safe" в rust?
  • @ma1uta, Про это есть целая статья в документации
  • @ermine, про сошки уже говорили.
    давай теперь ещё так: пускаешь приложение на новом порту, делаешь репоинт энжин икса на новый порт, опускаешь старый сервер.

    автоматизируется на раз. даунтайм меньше 0.01 секунды, вероятность неконсистентности низка.

    но! можно еще софтину и старый лог перечитать при старте.
  • @agr, а как это изуверство переносят долгоживущие соединения? они перетекают в новый сервер без закрытия сокета?
  • @ermine, рвутся, конечно..
  • @agr, дааа, надо было писать на котлине!