96: Extract Perps sample data into EvelynPerpsService and poll it from EMC
This commit is contained in:
@@ -431,3 +431,23 @@ minuts fast forsinkelse, og et punkt persisteres før publicering i et immutable
|
||||
hukommelsen og beholder navnereservationen, restart genindlæser filen, og `close()` frigiver navnet efter sikker
|
||||
terminering. `EvelynStatusIndexPoint` bliver i sin eksisterende package med alle seks indeksfelter; kun Evelyn
|
||||
Price Index beregnes og vises, mens de øvrige fem felter fortsat er nul. Legacy-rebalancering er fortsat inaktiv.
|
||||
|
||||
## 12. Perps-service og Mission Control
|
||||
|
||||
`com.r35157.evelyn.service.perps.EvelynPerpsService` ejer positionsdata og udleverer hele det aktuelle,
|
||||
immutable `PerpsSnapshot` gennem `getPositionsSnapshot()`. Snapshot'et indeholder wallets, deres venues og
|
||||
positioner med stabile ID'er blandt søskende, adskilt fra visningsnavne. Positioner indeholder instrument,
|
||||
`LONG`/`SHORT` og decimal USD-størrelse. Svaret indeholder ingen JavaFX-elementer, farver eller formatering.
|
||||
|
||||
`impl.ref.EvelynPerpsServiceImpl` implementerer desuden `NenjimProcess`. Hub'en registrerer og starter det samme
|
||||
objekt som `evelyn.perps.default` før EMC. Før `start()` afvises læsning; gentagen start afvises også.
|
||||
Service-API'et eksponerer kun læsning, ingen lifecycle- eller positionsændringer. Servicen ejer de otte
|
||||
uændrede eksempelpositioner fra den oprindelige Perps-fane og har ingen workers eller Jupiter/Phoenix-kald.
|
||||
|
||||
EMC læser snapshot'et straks ved åbning og hvert tredje sekund på en separat worker, uafhængigt af en eventuel
|
||||
senere integrations opdateringsinterval. Begge miljøfaner viser fortsat de samme tydeligt markerede eksempler;
|
||||
EMC ejer træstruktur, USD-formatering og grønne/røde rækker. Uændrede snapshots berører ikke eksisterende rækker,
|
||||
foldestatus eller markering. Ved ændringer genbruges træelementer efter deres ID'er inden for samme forælder.
|
||||
UI-opdateringer sker kun på JavaFX-tråden. Fejl bevarer visningen og stopper ikke næste pollingforsøg.
|
||||
Skjul/luk stopper polling; genåbning starter én ny løkke og afviser gamle resultater. Servicen fortsætter uafhængigt
|
||||
af vinduet. Der er ingen rigtig integration, simulerede ændringer, Refresh-knap eller handel i denne service.
|
||||
|
||||
@@ -271,6 +271,7 @@ jupiter-perps-alarm.default
|
||||
evelyn.status.prod
|
||||
evelyn.status.test
|
||||
evelyn.iou-burner.prod
|
||||
evelyn.perps.default
|
||||
nenjim.javafx-runtime.service
|
||||
evelyn.mission-control.default
|
||||
nenjim.process-manager.default
|
||||
@@ -283,6 +284,13 @@ navngivne `Production`- og `Test`-instanser gennem `EvelynStatusServiceImpl` og
|
||||
`EvelynStatusService`-views i Mission Control. Process Manager viser de nye ID'er fra Hub'ens startup-snapshot.
|
||||
Historik ligger fortsat i `data/evelyn/<instance-name>/status.log` med formatversion 1 og kræver ingen migration.
|
||||
|
||||
Mission Control kræver også `evelyn.perps.default` før `evelyn.mission-control.default` i den private
|
||||
`conf/NenjimHub.conf`. Hub'en konstruerer, registrerer og starter `EvelynPerpsServiceImpl` som en separat
|
||||
proces og injicerer samme objekts read-only `EvelynPerpsService`-view i EMC. Process Manager viser ID'et efter
|
||||
vellykket startup. Den lokale udviklingskonfiguration vælger nu servicen før EMC; andre deployments med EMC
|
||||
skal tilføje samme linje. Udeladt eller forkert rækkefølge giver en tydelig konstruktionsfejl uden automatisk
|
||||
indsættelse. Servicen bruger kun uændrede in-memory-eksempler og foretager ingen eksterne positionskald.
|
||||
|
||||
Hvis `evelyn.iou-burner.prod` vælges, skal både `assetaz.ticker.default` og
|
||||
`evelyn.status.prod` stå før den. Hub'en injicerer Production status-servicen til
|
||||
referenceprisopslag før nye buybacks; en manglende eller senere status-forgænger
|
||||
|
||||
Reference in New Issue
Block a user