Scheduler: implement automatic clean-up of outdated entries
Hooked into the existing processing logic at Layer-2, and relying on the information functions of Layer-1
This commit is contained in:
parent
b1e0ce1a79
commit
b49de0738d
5 changed files with 102 additions and 86 deletions
|
|
@ -116,7 +116,7 @@ namespace idi {
|
|||
}
|
||||
|
||||
/** designation of an distinct object instance
|
||||
* @par obj pointer to the memory location of the object
|
||||
* @param obj pointer to the memory location of the object
|
||||
* @return a notation "typename.hash", where the hash is given
|
||||
* as 4 hex digits derived from the memory location
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -54,6 +54,7 @@
|
|||
** In typical usage, Layer-2 of the Scheduler will perform the following operations
|
||||
** - accept and enqueue new task descriptions (as chain-of-Activities)
|
||||
** - retrieve the most urgent entry from Layer-1
|
||||
** - silently dispose of any outdated entries
|
||||
** - use the [Activity Language environment](\ref ActivityLang) to _perform_
|
||||
** the retrieved chain within some worker thread; this is called _dispatch_
|
||||
** The central cross road of this implementation is the #postDispatch function.
|
||||
|
|
@ -171,7 +172,11 @@ namespace gear {
|
|||
}
|
||||
|
||||
|
||||
/** look into the queues and possibly retrieve work due by now */
|
||||
/**
|
||||
* Look into the queues and possibly retrieve work due by now.
|
||||
* @note transparently discards any outdated entries,
|
||||
* but blocks if a compulsory entry becomes outdated.
|
||||
*/
|
||||
Activity*
|
||||
findWork (SchedulerInvocation& layer1, Time now)
|
||||
{
|
||||
|
|
@ -179,7 +184,9 @@ namespace gear {
|
|||
or acquireGoomingToken())
|
||||
{
|
||||
layer1.feedPrioritisation();
|
||||
if (layer1.isDue (now))
|
||||
while (layer1.isOutdated (now) and not layer1.isOutOfTime(now))
|
||||
layer1.pullHead();
|
||||
if (layer1.isDue (now) and not layer1.isOutOfTime(now))
|
||||
return layer1.pullHead();
|
||||
}
|
||||
return nullptr;
|
||||
|
|
|
|||
|
|
@ -33,6 +33,22 @@
|
|||
** use of a _Priority Queue_ — which however must be concurrency protected.
|
||||
** The Layer-2 thus assures that _mutating operations_ are performed
|
||||
** exclusively from a special »grooming mode« (management mode).
|
||||
** @par Data maintained in Queue Entries
|
||||
** - the [Activity itself](\ref SchedulerInvocation::ActOrder::activity)
|
||||
** is allocated externally an only referred by pointer; however, this
|
||||
** pointer must not be dereferenced after the *deadline* passed.
|
||||
** - an entry can be scheduled after reaching the
|
||||
** [start time](\ref SchedulerInvocation::ActOrder::waterlevel)
|
||||
** - the [deadline](\ref SchedulerInvocation::ActOrder::deathtime)
|
||||
** marks latest point in time where starting is still allowed
|
||||
** - entries can be tagged with a distinctive
|
||||
** [»manifestation ID«](\ref SchedulerInvocation::ActOrder::manifestationID),
|
||||
** which allows to filter out complete _families_ of already planned entries
|
||||
** - as a safety measure, an entry can be marked as
|
||||
** [compulsory](\ref SchedulerInvocation::ActOrder::isCompulsory).
|
||||
** In regular operation, this has no effect, but an *emergency state*
|
||||
** is triggered in the SchedulerService, should such an entry
|
||||
** [miss it's deadline](\ref SchedulerInvocation::isOutOfTime())
|
||||
** @see SchedulerCommutator::findWork()
|
||||
** @see SchedulerCommutator::postDispatch()
|
||||
** @see SchedulerInvocation_test
|
||||
|
|
|
|||
|
|
@ -228,6 +228,7 @@ namespace test {
|
|||
})
|
||||
.threadID("grooming-hog"));
|
||||
sleep_for (500us);
|
||||
ENSURE (groomingHog_);
|
||||
}
|
||||
|
||||
/** @internal stop the background thread to unblock the GrooingToken */
|
||||
|
|
@ -369,7 +370,7 @@ namespace test {
|
|||
Time t4{40,0}; Activity a4{4u,4u};
|
||||
|
||||
queue.instruct (a1, t1, t4, ManifestationID{5});
|
||||
queue.instruct (a2, t2, t3);
|
||||
queue.instruct (a2, t2, t2);
|
||||
queue.instruct (a3, t3, t3, ManifestationID{23}, true);
|
||||
queue.instruct (a4, t4, t4);
|
||||
queue.activate(ManifestationID{5});
|
||||
|
|
@ -388,13 +389,15 @@ namespace test {
|
|||
|
||||
CHECK (not sched.findWork(queue, t1));
|
||||
CHECK (t2 == queue.headTime());
|
||||
CHECK (isSameObject (a2, *queue.peekHead()));
|
||||
CHECK (not queue.isMissed (t2));
|
||||
CHECK (not queue.isOutdated(t2));
|
||||
CHECK ( queue.isMissed (t3));
|
||||
CHECK ( queue.isOutdated(t3));
|
||||
|
||||
CHECK (not sched.findWork(queue, t2));
|
||||
CHECK (not sched.findWork(queue, t2+Time{5,0}));
|
||||
CHECK (t3 == queue.headTime());
|
||||
CHECK (isSameObject (a3, *queue.peekHead()));
|
||||
CHECK (not queue.isMissed (t3));
|
||||
CHECK (not queue.isOutdated (t3));
|
||||
CHECK (not queue.isOutOfTime(t3));
|
||||
|
|
@ -411,7 +414,7 @@ namespace test {
|
|||
CHECK ( queue.isOutdated (t4));
|
||||
CHECK ( queue.isOutOfTime(t4));
|
||||
|
||||
queue.drop(ManifestationID{5});
|
||||
queue.drop(ManifestationID{23});
|
||||
CHECK (t3 == queue.headTime());
|
||||
CHECK (not queue.isMissed (t3));
|
||||
CHECK ( queue.isOutdated (t3));
|
||||
|
|
|
|||
|
|
@ -71355,9 +71355,7 @@
|
|||
<node CREATED="1698873084866" ID="ID_1456507013" MODIFIED="1698873098700" TEXT="fliegende Änderungen ermöglichen">
|
||||
<node CREATED="1698872727530" ID="ID_955918033" MODIFIED="1698873138080" TEXT="Manifestation-ID mitzuführen">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
um fliegende Änderungen durchführen zu können
|
||||
|
|
@ -72684,9 +72682,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="yes"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1698873306853" ID="ID_155141069" MODIFIED="1698873879301" TEXT="ManifestationID für Änderungen verankern">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...dient als Bezugspunkt um im Scheduler einen »fliegenden Wechsel« der unterliegenden Definition zu ermöglichen
|
||||
|
|
@ -81990,9 +81986,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1698937116771" ID="ID_231850405" MODIFIED="1698937120938" TEXT="verbessert Verständlichkeit"/>
|
||||
<node BACKGROUND_COLOR="#e1d6c7" COLOR="#463227" CREATED="1698945910380" ID="ID_1122976270" MODIFIED="1698946107167" TEXT="Domänen-Struktur zeigt sich">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...und das hatte ich <i>an der Stelle </i>gar nicht erwartet: die tatsächlichen Benutzer eines »Scheduler-Service« gehen nach wenigen festen Schemata vor und müssen überhaupt nichts von einer »Activity-Language« wissen
|
||||
|
|
@ -84036,19 +84030,19 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1698532686214" ID="ID_272237675" MODIFIED="1698532696468" TEXT="Deadlines und Selbstregulierung">
|
||||
<icon BUILTIN="flag-pink"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1698532697859" ID="ID_1071571068" MODIFIED="1698532724472" TEXT="Deadlines in das System integrieren">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1698532716488" ID="ID_337384722" MODIFIED="1698532910109" TEXT="in die Priority-Queue">
|
||||
<arrowlink COLOR="#ef4776" DESTINATION="ID_136482882" ENDARROW="Default" ENDINCLINATION="69;-169;" ID="Arrow_ID_63115321" STARTARROW="None" STARTINCLINATION="-285;-30;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1698532697859" ID="ID_1071571068" MODIFIED="1698970264358" TEXT="Deadlines in das System integrieren">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node COLOR="#338800" CREATED="1698532716488" ID="ID_337384722" MODIFIED="1698970259804" TEXT="in die Priority-Queue">
|
||||
<arrowlink COLOR="#47a6ef" DESTINATION="ID_136482882" ENDARROW="Default" ENDINCLINATION="69;-169;" ID="Arrow_ID_63115321" STARTARROW="None" STARTINCLINATION="-285;-30;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1698532728431" ID="ID_233989928" MODIFIED="1698532974876" TEXT="mit Tick und Allokation integrieren">
|
||||
<arrowlink COLOR="#3364f0" DESTINATION="ID_1847975334" ENDARROW="Default" ENDINCLINATION="-449;34;" ID="Arrow_ID_1046093983" STARTARROW="None" STARTINCLINATION="222;-17;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1698532793030" ID="ID_696019318" MODIFIED="1698533136478" TEXT="verbindliche Tasks ermöglichen">
|
||||
<arrowlink COLOR="#ee3a6b" DESTINATION="ID_1475771662" ENDARROW="Default" ENDINCLINATION="-1121;-88;" ID="Arrow_ID_211999245" STARTARROW="None" STARTINCLINATION="1410;120;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1698532793030" ID="ID_696019318" MODIFIED="1698970294088" TEXT="verbindliche Tasks ermöglichen">
|
||||
<arrowlink COLOR="#3f3aee" DESTINATION="ID_1475771662" ENDARROW="Default" ENDINCLINATION="-1121;-88;" ID="Arrow_ID_211999245" STARTARROW="None" STARTINCLINATION="1410;120;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#435e98" CREATED="1698935602937" HGAP="100" ID="ID_1382222698" MODIFIED="1698935623608" TEXT="»compulsory«" VSHIFT="2">
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
|
|
@ -84087,7 +84081,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1697982818498" ID="ID_136482882" MODIFIED="1698532905413" TEXT="Deadline berücksichtigen ">
|
||||
<linktarget COLOR="#ef4776" DESTINATION="ID_136482882" ENDARROW="Default" ENDINCLINATION="69;-169;" ID="Arrow_ID_63115321" SOURCE="ID_337384722" STARTARROW="None" STARTINCLINATION="-285;-30;"/>
|
||||
<linktarget COLOR="#47a6ef" DESTINATION="ID_136482882" ENDARROW="Default" ENDINCLINATION="69;-169;" ID="Arrow_ID_63115321" SOURCE="ID_337384722" STARTARROW="None" STARTINCLINATION="-285;-30;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1697982844409" ID="ID_1374530988" MODIFIED="1697982854041" TEXT="im Datenrecord mitführen"/>
|
||||
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1697982854605" ID="ID_651171432" MODIFIED="1697982875378" TEXT="Zusicherung: kein Zugriff auf verfallene Activities">
|
||||
|
|
@ -84096,9 +84090,9 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1697982898279" ID="ID_1086820599" MODIFIED="1697982926481" TEXT="verfallene Activities dürfen wiederverwendet werden">
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1698542519485" ID="ID_768314841" MODIFIED="1698543099960" TEXT="Bereinigung in die normale Verarbeitung integrieren">
|
||||
<node COLOR="#338800" CREATED="1698542519485" ID="ID_768314841" MODIFIED="1698970344746" TEXT="Bereinigung in die normale Verarbeitung integrieren">
|
||||
<linktarget COLOR="#7e4dc3" DESTINATION="ID_768314841" ENDARROW="Default" ENDINCLINATION="362;-65;" ID="Arrow_ID_464500099" SOURCE="ID_1705516567" STARTARROW="None" STARTINCLINATION="213;11;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1698542534903" ID="ID_1065770396" MODIFIED="1698542579305" TEXT="Achtung: nur unter Grooming-Token">
|
||||
<icon BUILTIN="clanbomber"/>
|
||||
</node>
|
||||
|
|
@ -84113,8 +84107,8 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</html></richcontent>
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1698542905269" ID="ID_271558649" MODIFIED="1698542913039" TEXT="Entscheidungslogik nochmal durchprüfen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1698542905269" ID="ID_271558649" MODIFIED="1698970347001" TEXT="Entscheidungslogik nochmal durchprüfen">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1697982938058" ID="ID_1655832509" MODIFIED="1698542495500" TEXT="Problem: Deadlines für non-timebound modes">
|
||||
|
|
@ -84123,11 +84117,9 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1698542469775" ID="ID_1223768150" MODIFIED="1698542482889" TEXT="hierfür: verbindliche Tasks"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1698874604558" ID="ID_5485655" MODIFIED="1698874692722">
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1698874604558" ID="ID_5485655" MODIFIED="1698970153006">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
<u>Implementierung</u>:
|
||||
|
|
@ -84137,7 +84129,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node COLOR="#338800" CREATED="1698875050812" ID="ID_292105591" MODIFIED="1698963531996" TEXT="Datenfelder">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1698877940667" FOLDED="true" ID="ID_1937246215" MODIFIED="1698963527448" TEXT="bläht die Einträge auf">
|
||||
|
|
@ -84204,14 +84196,12 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1698874464330" ID="ID_536599334" MODIFIED="1698874641730" TEXT="Markierung per CalcStream/Manifestation-ID">
|
||||
<node COLOR="#338800" CREATED="1698874464330" ID="ID_536599334" MODIFIED="1698970131061" TEXT="Markierung per CalcStream/Manifestation-ID">
|
||||
<linktarget COLOR="#9c4c6a" DESTINATION="ID_536599334" ENDARROW="Default" ENDINCLINATION="-881;57;" ID="Arrow_ID_1336944992" SOURCE="ID_1901851782" STARTARROW="None" STARTINCLINATION="-1037;-40;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1698874552701" ID="ID_393531098" MODIFIED="1698874578329">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
übergreifendes Thema: <i>fliegende Änderungen </i>in Play-Prozessen
|
||||
|
|
@ -84224,9 +84214,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
<node CREATED="1698966488184" ID="ID_52503620" MODIFIED="1698966526768">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
brauche generische Informationsfunktion <font face="Monospaced" color="#0d0fb9">isOutdated()</font>
|
||||
|
|
@ -84235,29 +84223,30 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</html>
|
||||
</richcontent>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1698970133343" ID="ID_1886746867" MODIFIED="1698970148917" TEXT="muß vom Scheduler high-Level-API bedient werden">
|
||||
<icon BUILTIN="bell"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1698533220909" ID="ID_1286321982" MODIFIED="1698533274744" TEXT="Flag und Steuerung für »verbindliche Activities«">
|
||||
<linktarget COLOR="#f13e82" DESTINATION="ID_1286321982" ENDARROW="Default" ENDINCLINATION="107;492;" ID="Arrow_ID_1399415601" SOURCE="ID_326051657" STARTARROW="None" STARTINCLINATION="922;-57;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1698533783922" ID="ID_1279644850" MODIFIED="1698533798213" TEXT="blockiert das Verwerfen nach Deadline">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1698533783922" ID="ID_1279644850" MODIFIED="1698970114815" TEXT="blockiert das Verwerfen nach Deadline">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1698533800719" ID="ID_979357340" MODIFIED="1698533837777" TEXT="wird dann vom Tick/DutyCycle erkannt">
|
||||
<arrowlink COLOR="#9a5079" DESTINATION="ID_1227874220" ENDARROW="Default" ENDINCLINATION="133;12;" ID="Arrow_ID_967532278" STARTARROW="None" STARTINCLINATION="241;-7;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1698945154395" ID="ID_1664760512" MODIFIED="1698945168653" TEXT="erweiterte Prüfungen in die normale Verarbeitung integrieren">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1698945192477" ID="ID_1809715507" MODIFIED="1698945204897" TEXT="brauche nun zusätzliche Daten beim Einplanen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1698945154395" ID="ID_1664760512" MODIFIED="1698970165200" TEXT="erweiterte Prüfungen in die normale Verarbeitung integrieren">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1698945192477" ID="ID_1809715507" MODIFIED="1698970058102" TEXT="brauche nun zusätzliche Daten beim Einplanen">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1698946253457" ID="ID_1811524315" MODIFIED="1698946256631" TEXT="Defaults">
|
||||
<node CREATED="1698946293491" ID="ID_537001260" MODIFIED="1698946298907" TEXT="sinnvoll für Tests"/>
|
||||
<node CREATED="1698946300016" ID="ID_1426746639" MODIFIED="1698947331093" TEXT="Deadline auf »Time::NEVER«">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<ul>
|
||||
<li>
|
||||
|
|
@ -84272,9 +84261,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
<node CREATED="1698946311193" ID="ID_1622617686" MODIFIED="1698947426886" TEXT="leere ManifestationID">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
diese spezielle Marker-ID wird implizit stets freigeschaltet, kann also später nicht verworfen werden; das erscheint mir ein sinnvoller Default
|
||||
|
|
@ -84284,9 +84271,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
<node CREATED="1698946321096" ID="ID_1270673617" MODIFIED="1698947474211" TEXT="not isComplusory">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
verpflichtende Activities sind ebenfalls ein Feature, das eigentlich erst auf Scheduler-Level angesiedelt ist, und hier nur den entsprechenden Support braucht
|
||||
|
|
@ -84295,6 +84280,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</html></richcontent>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#435e98" CREATED="1698970061962" ID="ID_1229124977" MODIFIED="1698970101779" TEXT="jeder Queue-Entry besteht nun aus 4 »Slots«"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1698945215604" ID="ID_1778628995" MODIFIED="1698946166942" TEXT="Scheduler high-level-API erweitern">
|
||||
<arrowlink COLOR="#3d3aa9" DESTINATION="ID_780386157" ENDARROW="Default" ENDINCLINATION="69;74;" ID="Arrow_ID_103420327" STARTARROW="None" STARTINCLINATION="317;25;"/>
|
||||
|
|
@ -84303,9 +84289,9 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node COLOR="#338800" CREATED="1698946201921" ID="ID_1058086166" MODIFIED="1698963474934" TEXT="Informationsfunktionen ergänzen">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1698946217933" ID="ID_1697537017" MODIFIED="1698946222845" TEXT="transparentes Verwerfen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1698948806933" ID="ID_420754882" MODIFIED="1698948813155" TEXT="wo ansetzen?">
|
||||
<node COLOR="#338800" CREATED="1698946217933" ID="ID_1697537017" MODIFIED="1698970050764" TEXT="transparentes Verwerfen">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#435e98" CREATED="1698948806933" ID="ID_420754882" MODIFIED="1698970047714" TEXT="wo ansetzen?">
|
||||
<node CREATED="1698948815117" ID="ID_736157754" MODIFIED="1698948823278" TEXT="es muß eine Mutations-Funktion sein"/>
|
||||
<node CREATED="1698948824058" ID="ID_42556043" MODIFIED="1698948833941" TEXT="sie muß stets unter Grooming-Token aufgerufen werden"/>
|
||||
<node COLOR="#5b280f" CREATED="1698949109228" ID="ID_765027235" MODIFIED="1698949156519" TEXT="rein logisch wäre feedPrioritisation() gut">
|
||||
|
|
@ -84319,11 +84305,9 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1698949181235" ID="ID_655555656" MODIFIED="1698949192821" TEXT="und hat auch nicht die Zeit `now`"/>
|
||||
<node CREATED="1698949193697" ID="ID_1153123389" MODIFIED="1698949214930" TEXT="außerdem wäre die Formulierung if (isDue) untergraben"/>
|
||||
</node>
|
||||
<node CREATED="1698949216918" ID="ID_1626105170" MODIFIED="1698949234265">
|
||||
<node COLOR="#435e98" CREATED="1698949216918" ID="ID_1626105170" MODIFIED="1698970044539">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
also gehört diese Operation in <b>Layer-2</b>
|
||||
|
|
@ -84333,9 +84317,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="yes"/>
|
||||
<node CREATED="1698966624581" ID="ID_610935351" MODIFIED="1698966652638">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
damit: direkt in <b><font face="Monospaced" color="#610da9">findWork</font></b><font face="Monospaced" color="#610da9">(now)</font>
|
||||
|
|
@ -84344,20 +84326,30 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</html>
|
||||
</richcontent>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1698966669839" ID="ID_1859516972" MODIFIED="1698966684878" TEXT="Layer-2 baut auf den Informationsfunktionen von Layer 1 auf">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1698966699869" ID="ID_919547647" MODIFIED="1698966742571" TEXT="Layer-2 findet nur die nach allen Regeln ausführbare nächste Activity">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1698969992698" ID="ID_413808337" MODIFIED="1698970038839">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
prüft explizit auf <font face="Monospaced" color="#62382f">isOutdated (now) and not isOutOfTime(now)</font>
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1698934459104" ID="ID_1030078999" MODIFIED="1698963463139" TEXT="Scheduler Layer-Tests ergänzen">
|
||||
<node COLOR="#338800" CREATED="1698966669839" ID="ID_1859516972" MODIFIED="1698969985695" TEXT="Layer-2 baut auf den Informationsfunktionen von Layer 1 auf">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1698966699869" ID="ID_919547647" MODIFIED="1698969983997" TEXT="Layer-2 findet nur die nach allen Regeln ausführbare nächste Activity">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1698934459104" ID="ID_1030078999" MODIFIED="1698970200523" TEXT="Scheduler Layer-Tests ergänzen">
|
||||
<arrowlink COLOR="#1990d6" DESTINATION="ID_774197123" ENDARROW="Default" ENDINCLINATION="589;-82;" ID="Arrow_ID_644878733" STARTARROW="None" STARTINCLINATION="-1097;92;"/>
|
||||
<arrowlink COLOR="#d6194f" DESTINATION="ID_340948432" ENDARROW="Default" ENDINCLINATION="589;-82;" ID="Arrow_ID_1678021866" STARTARROW="None" STARTINCLINATION="-1097;92;"/>
|
||||
<icon BUILTIN="pencil"/>
|
||||
<arrowlink COLOR="#23a89d" DESTINATION="ID_340948432" ENDARROW="Default" ENDINCLINATION="589;-82;" ID="Arrow_ID_1678021866" STARTARROW="None" STARTINCLINATION="-1097;92;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -88954,7 +88946,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1688336761542" ID="ID_145928010" MODIFIED="1698934541039" TEXT="SchedulerInvocation_test">
|
||||
<node COLOR="#338800" CREATED="1688336761542" FOLDED="true" ID="ID_145928010" MODIFIED="1698970224155" TEXT="SchedulerInvocation_test">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1688337123318" ID="ID_1686181795" MODIFIED="1688337233916" TEXT="»Layer-1« : Queue operation">
|
||||
<icon BUILTIN="info"/>
|
||||
|
|
@ -88978,7 +88970,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node COLOR="#338800" CREATED="1697503841856" ID="ID_1434499377" LINK="#ID_1306162732" MODIFIED="1697509772561" TEXT="verify_WaterLevel">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1698934474047" ID="ID_774197123" MODIFIED="1698963431837" TEXT="verify_Significance">
|
||||
<node COLOR="#338800" CREATED="1698934474047" FOLDED="true" ID="ID_774197123" MODIFIED="1698970217305" TEXT="verify_Significance">
|
||||
<linktarget COLOR="#1990d6" DESTINATION="ID_774197123" ENDARROW="Default" ENDINCLINATION="589;-82;" ID="Arrow_ID_644878733" SOURCE="ID_1030078999" STARTARROW="None" STARTINCLINATION="-1097;92;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1698947582439" ID="ID_622394306" MODIFIED="1698963261235" TEXT="erweiterter Zustand per API sichtbar">
|
||||
|
|
@ -89000,7 +88992,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1688336794355" ID="ID_1705923970" MODIFIED="1698963265645" TEXT="SchedulerCommutator_test">
|
||||
<node COLOR="#338800" CREATED="1688336794355" FOLDED="true" ID="ID_1705923970" MODIFIED="1698970227851" TEXT="SchedulerCommutator_test">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1688337141875" ID="ID_1442397948" MODIFIED="1697552361129" TEXT="»Layer-2« : Activity execution">
|
||||
<icon BUILTIN="info"/>
|
||||
|
|
@ -89179,9 +89171,9 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1698934474047" ID="ID_340948432" MODIFIED="1698966607384" TEXT="verify_Significance">
|
||||
<linktarget COLOR="#d6194f" DESTINATION="ID_340948432" ENDARROW="Default" ENDINCLINATION="589;-82;" ID="Arrow_ID_1678021866" SOURCE="ID_1030078999" STARTARROW="None" STARTINCLINATION="-1097;92;"/>
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node COLOR="#338800" CREATED="1698934474047" FOLDED="true" ID="ID_340948432" MODIFIED="1698970218992" TEXT="verify_Significance">
|
||||
<linktarget COLOR="#23a89d" DESTINATION="ID_340948432" ENDARROW="Default" ENDINCLINATION="589;-82;" ID="Arrow_ID_1678021866" SOURCE="ID_1030078999" STARTARROW="None" STARTINCLINATION="-1097;92;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1698947608180" ID="ID_935784796" MODIFIED="1698947626950" TEXT="Queue-Processing verwirft abgelaufene Tasks"/>
|
||||
<node CREATED="1698947694025" ID="ID_1869538175" MODIFIED="1698947727576" TEXT="nicht freigeschalte Manifestation wird unterdrückt"/>
|
||||
<node CREATED="1698966580969" ID="ID_1199341321" MODIFIED="1698966601172" TEXT="compulsory Activity blockt das automatische Verwerfen"/>
|
||||
|
|
@ -94770,9 +94762,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1698872769092" HGAP="24" ID="ID_167266149" MODIFIED="1698933847212" TEXT="CalcStream-Manifestation" VSHIFT="8">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
ermöglicht, einen CalcStream inkompatibel zu verändern und die Reste der damit obsoleten Manifestation fliegend zu verwerfen
|
||||
|
|
@ -95429,7 +95419,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</html></richcontent>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1698533069058" ID="ID_1475771662" MODIFIED="1698533129903" TEXT="klares Trennkriterium einführen">
|
||||
<linktarget COLOR="#ee3a6b" DESTINATION="ID_1475771662" ENDARROW="Default" ENDINCLINATION="-1121;-88;" ID="Arrow_ID_211999245" SOURCE="ID_696019318" STARTARROW="None" STARTINCLINATION="1410;120;"/>
|
||||
<linktarget COLOR="#3f3aee" DESTINATION="ID_1475771662" ENDARROW="Default" ENDINCLINATION="-1121;-88;" ID="Arrow_ID_211999245" SOURCE="ID_696019318" STARTARROW="None" STARTINCLINATION="1410;120;"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1698533152440" ID="ID_326051657" MODIFIED="1698533633384" TEXT="Flag für verbindlichen Task in den Scheduler einbauen">
|
||||
<arrowlink COLOR="#f13e82" DESTINATION="ID_1286321982" ENDARROW="Default" ENDINCLINATION="107;492;" ID="Arrow_ID_1399415601" STARTARROW="None" STARTINCLINATION="922;-57;"/>
|
||||
|
|
|
|||
Loading…
Reference in a new issue