Перейти к содержанию

Требования к сиБотам

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

Ссылки времени компиляции

Существует несколько способов работы с зависимостями в .NET. Например, вы можете предоставить зависимости в виде отдельных файлов .dll, не включая их напрямую в исполняемый файл проекта.

Однако только ссылки времени компиляции полностью совместимы с запуском сиБотов в облаке. Облако выступает в качестве выделенной среды, которая запускает исполняемый файл сиБота (файл .algo) без управления какими-либо внешними файлами .dll.

Зависимости времени компиляции обеспечиваются во всех случаях, когда вы ссылаетесь на библиотеку в операторах using в начале вашего кода. Однако если вы ссылаетесь на отдельный файл .dll в теле вашего кода (например, через метод Assembly.Load()), эта ссылка не будет ссылкой времени компиляции, и ваш сиБот не будет выполнять какие-либо связанные операции в облаке.

Кросс-платформенные зависимости

Облако выполняет все сиБоты в среде на базе Linux. Это означает, что если вы хотите использовать внешние зависимости, эти зависимости должны быть кросс-платформенными.

В качестве примера приведем несколько зависимостей, которые не будут работать в облаке, поскольку они специфичны для Windows.

  • WPF
  • WinForms
  • WinAPI

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

Функции API

Существует несколько функций Algo API, которые работают в облаке иначе по сравнению с локальным выполнением.

Функция/метод Как это работает в облаке
MessageBox Всегда возвращает MessageBoxResult.None
Window Всегда игнорируется
Notifications.PlaySound() Всегда игнорируется
Account.UserNickName Всегда вызывает обработчик OnException()
Chart.TakeChartshot() Всегда возвращает null
WebSocketClient Работает только при подключении к сервису через порт 25345
HTTP HTTP-запросы не отправляются
LocalStorage и файловые операции Работает только при указании относительных путей или создании новых каталогов с нуля

Локальное хранилище и файловые операции

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

Image title