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.
