Przejdź do treści

Wymagania dla cBotów

Istnieją dwa główne wymagania, które musisz spełnić, aby zapewnić płynne działanie instancji cBota w chmurze: odwołania w czasie kompilacji i zależności wieloplatformowe.

Odwołania w czasie kompilacji

Istnieje wiele sposobów pracy z zależnościami w .NET. Na przykład możesz dostarczać zależności jako pojedyncze pliki .dll bez bezpośredniego dołączania ich do pliku wykonywalnego projektu.

Jednak tylko odwołania w czasie kompilacji są w pełni kompatybilne z uruchamianiem cBotów w chmurze. Chmura działa jako dedykowane środowisko, które uruchamia plik wykonywalny cBota (plik .algo) bez zarządzania żadnymi zewnętrznymi plikami .dll.

Zależności w czasie kompilacji są zapewnione we wszystkich przypadkach, gdy odwołujesz się do biblioteki w instrukcjach using na górze kodu. Jednak jeśli odwołujesz się do samodzielnego pliku .dll w treści kodu (na przykład za pomocą metody Assembly.Load()), to odwołanie nie będzie odwołaniem w czasie kompilacji, a Twój cBot nie będzie wykonywał żadnych powiązanych operacji w chmurze.

Zależności wieloplatformowe

Chmura wykonuje wszystkie cBoty w środowisku opartym na Linuksie. Oznacza to, że jeśli chcesz używać zależności zewnętrznych, te zależności muszą być wieloplatformowe.

Jako ilustrację, oto kilka zależności, które nie będą działać w chmurze, ponieważ są specyficzne dla systemu Windows.

  • WPF
  • WinForms
  • WinAPI

Dodając nową zależność do projektu, przeczytaj jej dokumentację, aby dowiedzieć się, czy jest obsługiwana w środowiskach opartych na Linuksie.

Funkcje API

Istnieje kilka funkcji Algo API, które działają inaczej w chmurze w porównaniu z wykonaniem lokalnym.

Funkcja/metoda Jak działa w chmurze
MessageBox Zawsze zwraca MessageBoxResult.None
Window Jest zawsze ignorowana
Notifications.PlaySound() Jest zawsze ignorowana
Account.UserNickName Zawsze wywołuje procedurę obsługi OnException()
Chart.TakeChartshot() Zawsze zwraca null
WebSocketClient Działa tylko po połączeniu z usługą przez port 25345
HTTP Nie są wysyłane żadne żądania HTTP
LocalStorage i operacje na plikach Działa tylko wtedy, gdy określono ścieżki względne lub nowe katalogi są tworzone od podstaw

Pamięć lokalna i operacje na plikach

Za każdym razem, gdy wystąpienie w chmurze zostanie zatrzymane lub usunięte, wszystkie przydzielone mu zasoby w chmurze są automatycznie zwalniane. Jeśli Twój cBot tworzy pliki lub katalogi, a następnie uzyskuje dostęp do danych z nich, te pliki zostaną usunięte przy każdym ponownym uruchomieniu lub usunięciu wystąpienia.

Image title