Блог

Ваше опубликованное приложение теперь остаётся доступным во время повторной публикации

Когда вы публикуете приложение заново на Mythex, живой сайт теперь продолжает показывать предыдущую версию, пока новая сборка не будет готова, а затем переключается. Раньше повторная публикация отключала сайт на всё время сборки: посетители видели «Это опубликованное приложение недоступно или ссылка не найдена», примерно на минуту, а потом та же страница снова работала после перезагрузки. Мы также исправили два других способа, которыми живое приложение ошибочно выглядело недоступным.

1. Повторная публикация больше не отключает ваш сайт

За кулисами у каждого опубликованного приложения есть запись, в которой указано, какую сборку отдавать. Повторная публикация использовала эту запись и помечала её как «сборка» на всё время работы — а часть нашей периферии, которая направляет посетителей, отдавала только записи, помеченные как «живые». Поэтому каждая повторная публикация заставляла сайт исчезать до завершения сборки. Мы воспроизвели это на небольшом тестовом приложении: примерно 50 секунд без сайта на каждую повторную публикацию.

Теперь, когда повторная публикация начинается для уже живого приложения, запись помнит, что предыдущая сборка существует, и продолжает указывать на неё. Периферия отдаёт предыдущую сборку, пока новая собирается, а указатель переходит на новую сборку только при её успехе. Если новая сборка падает, ваши посетители ничего не замечают — старая версия просто остаётся доступной.

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

2. Кратковременный сбой больше не выглядит как «не найдено»

Сервис перед вашим опубликованным приложением спрашивает наш API, где находится каждый сайт. Раньше он считал любой неуспешный ответ — временную ошибку сервера, разорванное соединение — признаком того, что сайта не существует, и показывал страницу «недоступно». Перезагрузка через секунду работала, что сбивало с толку.

Теперь «не найдено» считается только настоящий ответ «не найдено»:

  • Любой другой сбой повторяется один раз.
  • Если он всё равно не проходит, периферия отдаёт сайт по последнему известному хорошему ответу на срок до часа.
  • Только если ответа никогда не было, показывается страница «временно недоступно» — никогда не «не найдено».

Доменам, подключённым к сайтам, также запросы идут параллельно к нашим производственным и тестовым системам, так что медленный тестовый сервер никогда не задержит производственный домен.

3. Приостановленное приложение говорит, что оно приостановлено

Опубликованные приложения работают на вашем балансе кредитов. Если он заканчивается, приложение приостанавливается до пополнения — и само возвращается, когда вы пополняете баланс. Но приостановленное приложение раньше выглядело точно так же, как удалённое.

Теперь посетитель приостановленного приложения видит «Это приложение приостановлено» с путём обратно для владельца, и такой ответ никогда не кэшируется, так что приложение доступно сразу, как только его возобновили. Если приложение недоступно по другой причине, посетители видят «Это приложение недоступно», без объяснения причины.

Почему это важно

Опубликованное приложение — это то, чем вы поделились: в ссылке в профиле, на визитке, с первыми клиентами. Оно должно вести себя как настоящий сайт — оставаться доступным, пока вы его улучшаете, выдерживать кратковременный сбой и честно говорить, когда оно приостановлено.

Больше о публикации в документации: как опубликовать и лимиты хостинга. А также инфраструктурная сторона той же идеи: как мы довели собственные деплои до нуля ошибок 502.

Mythex · Pricing · Создавайте что угодно с ИИ · Шаблоны сайтов и приложений · Сравнения Mythex · Глоссарий по созданию приложений с ИИ · Бесплатные инструменты для создания приложений с ИИ · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)