Материал из Скретч Вики

Облачные данные - это функция, которая позволяет пользователям хранить переменные, содержащие числа, на сервере Скретч. Облачные переменные имеют символ «☁» (значок облака в шрифте Скретч), чтобы отличать их от обычных переменных. При этом если на устройстве пользователя данный шрифт не поддерживается, то облако может выглядеть иначе. Журналы облачных данных могут быть удалены лицом, создавшим проект. Например, если есть тест, и кто-то не хочет показывать свой счет, но он попадает в журнал, создатель может удалить журнал. Существует ограничение в десять облачных переменных на проект.

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

Облачные переменные используют обычные блоки, связанные с переменными. Единственное отличие состоит в том, что значение действительно глобально и отражается во всех копиях проекта, просматриваемых на сайте Скретч.

Поскольку облачные данные хранятся на сервере, облачные переменные нельзя использовать в автономном редакторе.

Функциональность

Облачные переменные поддерживаются через безопасное соединение с помощью WebSockets.

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

Если переменная обновляется слишком часто, сервер облачных данных временно отключит соединение, и обновления не будут отправляться на серверы облачных данных до тех пор, пока соединение не будет автоматически повторно открыто после периода ожидания переменной.

Облачные данные имеют предел до десяти (10) переменных облака для каждого проекта. Облачные переменные могут содержать только числа (в отличие от обычных переменных, они не могут содержать буквы). Также был реализован предел символов из 256 цифр на переменную. Шестнадцатеричные числа больше не поддерживаются.

Примеры использования

  • Лучшие результаты/лидеры
если <(рекорд)>(☁ мировой рекорд)>, то
задать [☁ мировой рекорд v] значение (рекорд)
иначе
сказать [Вы не побили рекорд!]
end
  • Победа / проигрыш (до тех пор, пока счет не заканчивается нулевой цифрой)
если <(очки человека) > (очки компьютера)>, то
задать [☁ выиграли v] значение (объединить (объединить (очки человека) [.]) (очки компьютера))
иначе
задать [☁ проиграли v] значение (объединить (объединить (очки человека) [.]) (очки компьютера))
end
  • Опросы
Спросить [Голосуйте за Пепси или Колу! Какой твой любимый?] и ждать
если <(ответ) = [Пепси]>, то
изменить [☁ голосов за Пепси v] на (1)
иначе 
если <(ответ) = [Кола]>, то
изменить [☁ голосов за Колу v] на (1)
иначе
сказать [Извините! Ответ не понят.]
end
end

История облачных данных

Когда Команда Скретч выпустила бета-версию облачных данных, они создали публичные журналы для проектов с облачными данными, показывающие, какая была изменена облачная переменная, в какое времея, кто изменил данные, текущее значение данных и тип действия.Чтобы попасть в журнал, просто нажмите на кнопку облачных данных внизу страницы проекта. Это покажет вам пользователей, которые изменили данные облака и в какое время. Если пользователь, не являющийся владельцем проекта, изменит блоки облачных данных, увидев их изнутри, данные в облаке не будут сохранены. После выпуска Скретч 3.0 команда Скретч по ошибке установила ограничение на восемь облачных переменных на проект вместо десяти. 9 января это было исправлено.

Проблемы с облачными данными

В октябре 2016 года облачная инфраструктура начала периодически выходить из строя. В результате многие многопользовательские проекты не работали правильно. Это объясняется постоянно растущим числом активных пользователей, использующих облачные переменные, причем некоторые проекты отправляют до 30 запросов на облачную переменную в секунду. Это эффективно «спамит» облачный сервер с нагрузкой, которая не может быть обработана текущей инфраструктурой, и отключает ее.

Текущий статус

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

Раньше

По состоянию на август 2017 года новая система облачных данных была в бета-версии. Она использовала безопасные WebSockets в качестве канала связи. Чтобы использовать новую систему, нужно было добавить ?newcloud в конец URL-адрес проекта. Система теперь по умолчанию.