Treci la conținut
Înapoi la Nymbot

Baza de cunoștințe Codul

Executarea codului pe un server

Atunci când codul are nevoie de mai mult decât dispozitivul dvs. îl poate oferi - o altă limbă, pachete de pe internet, mai mult timp - Nymbot îl poate rula pe un server propriu, într-un container creat pentru a rula.

Ce este un server executat

Un server care rulează pornește un container proaspăt, pune codul în el, îl rulează, trimite înapoi ceea ce a tipărit și distruge containerul. pentru echilibru În momentul în care, de fapt, a fugit.

Există două căi în: Rulează pe server pe un bloc de cod, iar serverul rulează pe care Nymbot îl solicită în timp ce funcționează într-o repertoriu.

Pentru Python rapid sau JavaScript care nu are nevoie de nimic de pe internet, gratuit Sandbox pe dispozitivul dvs. De obicei este suficient.

Executarea unui bloc de cod

Python, JavaScript, TypeScript, shell, Go, Rust, Java și Dart blocuri de cod într-un răspuns au un Rulează pe server butonul, ori de câte ori sunt disponibile serverele care rulează. Se deschide o foaie care arată:

  • pe Imaginea Codul va funcționa,
  • o limită de timp pentru a alege: 1, 5 sau 15 minute,
  • cea mai mare sumă pe care o poate cheltui cursul, în credite Pro, pentru acea limită de timp,
  • și, dacă chat-ul are fișiere atașate, o casetă pentru a le include.

Presă Război și ieșirea curge sub blocul de cod pe măsură ce ajunge: ce a tipărit, codul de ieșire, cât timp a durat, orice fișiere a scris (fiecare cu o salvează Botoşăneni) şi la ce s-a dat în judecată.

opriţi serverul se închide imediat și plătiți numai pentru timpul în care a funcționat. oprit înainte de începerea serverului, nu costă nimic.

Într-un Modă anonimă Chat-ul este plătit din creditele Pro ale cheii aruncate, iar fișierele atașate nu sunt niciodată incluse.

Limbi și imagini

Fiecare limbă rulează pe o imagine, un sistem gata făcut cu instrumentele de care are nevoie limba.

imagineaFolosit pentruCe conțineserverului
PythonPythonPython 3.12 cu pip, venv, build tools și git; numpy, pandas și pytest deja instalate0.5 CPU, 4 GB de memorie
Node.jsJavaScript și TypeScriptNode.js 22 cu npm, pnpm și fir, plus Python 3, face și un compilator C++0.5 CPU, 4 GB de memorie
PoliglotăShell, Go, Rust și JavaBash, C și C++ build tools, Python 3, Node.js, Go, Rust cu încărcătură și Java 171 CPU, 6 GB de memorie
FluturăDartăFlutter 3.32 și Dart2 CPU, 8 GB de memorie

Cât costă

Timpul serverului este facturat în pași de 10 secunde, de la solicitarea serverului până la închiderea acestuia, cu 10 secunde ca cel puțin un curs poate costa.

  • Prețul este afișat în față, ca maxim. Nu vei fi niciodată încărcat mai mult, iar o cursă care se termină mai devreme costă mai puțin.
  • Maximul este ținut în timp ce alergarea se desfășoară. Când se termină, încărcătura reală este luată și restul este eliberat.
  • O cursă care nu începe este gratuită.
  • Se aplică capsulele de cheltuieli. O cursă care ar putea trece peste un chat cheltuieli cap Întreabă mai întâi, la fel ca un răspuns.

Deoarece prețul urmează prețul Bitcoin, se poate muta între momentul în care îl vedeți și momentul în care apăsați pe Run.

Serverul rulează într-un repository

Într-un chat cu o repertoriu Conectarea, la Serverul rulează cipul permite Nymbot să ceară să execute comenzi împotriva codului dvs., cum ar fi instalarea dependențelor și executarea testelor după o schimbare.

De fiecare dată când modelul dorește să ruleze ceva, răspunsul se oprește și afișează o carte cu imaginea, comanda completă, limita de timp și cât mai mult poate costa, plus care depozit atunci când chat-ul are mai multe.

  • Permite o dată Rulează împotriva depozitului cu editiile pe care răspunsul le-a făcut până acum, iar modelul primește înapoi codul de ieșire, sfârșitul ieșirii și lista de fișiere pe care comanda le-a schimbat.
  • declinului Răspunsul nu costă nimic. – Răspunsul nu costă nimic.

Fiecare rulează întreabă. fiecare este încărcat separat de răspuns, iar răspunsul enumeră rulează a făcut și ce costă fiecare. cheltuieli capEste refuzat înainte de a fi întrebat.

Fișierele cu modificări ale comenzii de pe server rămân acolo și sunt aruncate împreună cu containerul. Acestea nu sunt scrise în depozitul dvs. Modificările în depozit provin numai din editările proprii ale răspunsului.

Ce este izolat

  • Un container proaspăt pentru fiecare cursă. Nimic nu este împărtășit cu o altă cursă sau cu o altă persoană, iar containerul este distrus la sfârșitul cursului, indiferent dacă a reușit sau nu.
  • Nu există internet, cu excepția pachetelor de înregistrări. Containerul poate fi descărcat din locațiile de unde provin pachetele: PyPI, npm și yarn, pub.dev și stocarea Google pentru Flutter și Dart, proxy-ul modulului Go, crates.io, Maven Central și GitHub pentru dependențele git și descărcări de lansare.
  • Doar ceea ce ai ales intră. Codul, fișierele pe care le-ați inclus sau fișierele depozitului. cheile, tokenul git și conversațiile dvs. nu intră niciodată în container.
  • Rezultatele sunt tratate ca neîncredere. Într-un depozit, ceea ce imprime un run este afișat modelului marcat ca date externe și i se spune să nu urmeze niciodată instrucțiunile din interiorul acestuia.

Limite

  • Un server rulează la un moment dat pentru fiecare cheie. Începerea celui de-al doilea în timp ce primul este încă în curs de desfășurare este refuzată.
  • Limite de timp de 1, 5 sau 15 minute pentru un bloc de cod. O execuție de depozit poate solicita până la 15 minute, sau 20 pe imaginea Flutter.
  • Până la 1 MB de cod și până la 200 de fișiere atașate cu un total de 20 MB.
  • Un depozit de până la 60 MB, ambalat.
  • Până la 256 KB de ieșire. orice trecut care este scos, iar rularea spune așa.
  • Până la 200 de fișiere, 8 MB în total, sunt returnate pentru salvare.

Serverele pot fi dezactivate pentru întreținere, ca întreg sau ca o singură imagine la un moment dat. Rulează pe server Butonul și cipul nu sunt afișate.

Sarcinile lui Pan

Într-un chat de depozit, butonul de listă de verificare din partea de sus a chat-ului deschide sarcină Pan. Enumeră ce a făcut fiecare turn, cel mai nou mai întâi: fișierele pe care le-a citit și editat, se angajează, schimbările au fost plasate pentru revizuirea dvs. și fiecare server rulează cu comanda, imaginea, timpul, costul și starea de ieșire. Un server rulează în așteptare pentru aprobarea dvs. poate fi permis sau respins din pană, la fel ca din cardul său, iar un răspuns în curs de desfășurare poate fi oprit acolo.