Zajímavá vylepšení pro správu procesů a relací

Automaticky přeloženo z Deepl

Správa procesů a relací je nezbytná pro optimalizaci a monitorování aplikací 4D. S těmito prvky můžete snadno manipulovat a získávat o nich důležité informace díky různým příkazům.

Ve verzi 4D 20 R7 s potěšením oznamujeme řadu vylepšení, díky nimž jsou tyto funkce ještě přístupnější a efektivnější. Tyto nové funkce mají nejen zjednodušit vaši práci, ale také zvýšit výkon vašeho kódu. Mezi tato vylepšení patří:

  • Získání informací o procesu v objektu, které usnadní manipulaci s jeho vlastnostmi,
  • Umožnění přímého přístupu k informacím o relaci pomocí ID relace pro snadnější správu,
  • snazší získání čísla procesu přímo z jeho ID,
  • přístup k datu vytvoření procesu
  • Optimalizované filtrování výsledků vrácených funkcí Process activity příkazu pro získání všech procesů v relaci.

Zjistěte, jak tyto aktualizace mohou změnit váš vývoj a zvýšit efektivitu vašich aplikací!

HDI: Vlastnosti procesu, vlastnosti relace a aktivita procesu v akci

Získání informací o procesu nebo relaci

Nový příkaz Informace o procesu

Nový příkaz Process info vrací objekt. Výhoda této syntaxe spočívá v možnosti získat informace v objektu, což usnadňuje jejich zpracování oproti použití více proměnných. Příkaz _O_PROCESS PROPERTIES byl tedy zastaralý.

var $process : Object
$process :=Process info($processNumber)

Příkaz Process info příkaz vrací novou vlastnost, creationDateTime. Tato vlastnost umožňuje zjistit, kdy byl proces vytvořen.

Příklad výstupu:

{
    "číslo": 4,
    "name": "Application process",
    "sessionID": "3C81A8D7AFE64C2E9CCFFCDC35DC52F5",
    "ID": 4,
    "visible": true,
    "type": -18,
    "state": 0,
    "creationDateTime": "2024-09-22T12:46:39.243Z",
    "preemptive": false,
    "systemID": "123145476132864",
    "cpuUsage": 0,
    "cpuTime": 0.006769
}

Například pro zjištění, zda je můj proces preemptivní:

var $preemptive : Boolean
$preemptive :=Process info($processNumber).preemptive

Nový příkaz Session info

Nový příkaz Session info umožňuje získat informace o relaci pomocí jejího identifikátoru sessionID. Tyto informace jste již mohli získat pomocí příkazu Process activity. Výhodou tohoto nového příkazu je, že vrací jednoduchý objekt, čímž šetří čas a výkon.

var $session : Object
$session :=Session info($sessionID)
$session :=Session info(Process info($processNumber).sessionID)

Příklad výstupu:

{
    "ID": "3C81A8D7AFE64C2E9CCFFCDC35DC52F5",
    "userName": "Designer",
    "machineName": "My Computer",
    "systemUserName": "John Doe",
    "IPAddress": "localhost",
    "hostType": "mac",
    "type": "remote",
    "state": "active",
    "creationDateTime": "2024-09-10T09:55:54Z",
    "persistentID": "8FFDAE519F1F4DCDB81E8E8DB00AD101"
}

Získání čísla procesu z ID procesu

Adresa Process number příkaz byl aktualizován. Nyní je možné předat ID procesu pro přímé získání čísla procesu, kromě předchozího způsobu použití názvu procesu.

var $processNumber : Integer
var $processName : Text
var $processID : Integer

// From process name
$processNumber :=Process number($processName)

// From process ID
$processNumber :=Process number($processID)

Zlepšení pro příkaz k činnosti procesu

Filtrování procesů podle relace

Příkaz Process activity Příkaz umožňuje získat seznam procesů a relací. Pokud předáte volbu Processes only nebo Sessions only, získáte buď seznam procesů, nebo seznam relací. Nynímůžete efektivněji filtrovat výsledky. Stačí předat ID relace a získáte seznam procesů spojených s danou relací.

Zde jsou uvedeny různé možné kombinace:

// return all sessions and processes
$o:=Process activity()

// return all processes
$o :=Process activity(Processes only)

// return all sessions
$o :=Process activity(Sessions only)

// return the session passed in parameter and all linked processes
$o :=Process activity($sessionID)

// return all processes linked to the session passed in parameter
$o :=Process activity($sessionID; Processes only)

// return the session passed in parameter
$o :=Process activity($sessionID; Sessions only)

Získání data vytvoření procesu

Nová vlastnost, creationDateTime, byla přidána také do objektu Process vráceného pomocí funkce Process activity příkazem. Můžete tak snadno získat datum vytvoření libovolného procesu.

Příklad výstupu:

{
"processes": [
          {
             "name": "Application process",
             "sessionID": "3C81A8D7AFE64C2E9CCFFCDC35DC52F5",
             "number": 4,
             "ID": 4,
             "visible": true,
             "systemID": "123145476132864",
             "type": -18,
             "state": 0,
             "cpuUsage": 0,
             "cpuTime": 0.006769,
             "creationDateTime": "2024-09-22T12:46:39.324Z",
             "preemptive": false
           }
    ]
}

Ponořte se hlouběji

Další podrobnosti o těchto zajímavých změnách najdete v aktualizované dokumentaci k těmto příkazům. Nemůžeme se dočkat vašich názorů, připojte se ke konverzaci na našem fóru!

Vanessa Talbot
• Product Owner • Vanessa Talbot se připojila k programovému týmu 4D v červnu 2014. Jako Product Owner má na starosti psaní uživatelských příběhů a jejich převod do funkčních specifikací. Její úlohou je také zajistit, aby implementovaná funkce odpovídala potřebám zákazníka. Od svého příchodu pracovala na definování klíčových prvků ve 4D. Pracovala na většině nových funkcí preemptivního multi-threadingu a také na velmi složitém tématu: nové architektuře pro enginované aplikace. Vanessa má titul z Telecom Saint-Etienne. Svou kariéru začala ve Výzkumném ústavu kriminalistickém jako vývojářka pro audiovizuální oddělení. Působila také v mediální a lékařské oblasti jako expertka na technickou podporu, produkci i dokumentaci novinek.