Hallo,
Ik heb hier een discussietopic van gemaakt omdat ik niet alleen naar een oplossing zoek, maar ook benieuwd ben hoe anderen hier over denken/wat gangbare bestaande tools zijn. Ik wil dit wel aanvliegen vanaf de developmentkant, ik ben dus niet op zoek naar een stukje kant en klare software voor een bepaald OS, maar naar een basis om op te bouwen of een library/framework om op in te haken.
Om dit te bewerkstelligen heb ik een hele hoop losse scriptjes, die allemaal gebruik maken van een library om progress bars te laten zien (mpb).
Het nadeel is dat ik nu dus altijd een tmux sessie heb draaien die deze taken uitvoert, per taak het scriptje moet draaien, en weer met SSH moet verbinden om te kijken hoe het er mee staat. Soms crasht een proces of treedt er een timeout op die ik niet afgevangen blij te hebben, en hoewel ik wel weer wat code zou kunnen schrijven om dan via notify.run of Discord oid een notificatie te sturen, blijft het allemaal een beetje in elkaar gehackt.
Hierbij zou dan een generieke class zijn (een soort van custom thread class) die een (sub)taak uitvoert en informatie terug naar boven stuurt, waarmee iedere taak alleen zijn eigen code hoeft uit te voeren en evt. onderliggende taken hoeft af te wachten.
In de basis zou het al mooi zijn om alleen de weergave hiervoor te hebben, maar het zou helemaal vet zijn als je daarnaast óók een tmux sessie ofzo aftrapt om de processen daadwerkelijk in uit te voeren.
Dus voor ik ga knutselen met React oid en een hele hoop code ga schrijven ben ik eigenlijk wel benieuwd of er hier mensen zijn die hier ideeën over hebben, of bestaande tools kennen die hierin kunnen voorzien.
Welke problemen of ideeën schieten te binnen bij het lezen van dit topic?
Ik heb hier een discussietopic van gemaakt omdat ik niet alleen naar een oplossing zoek, maar ook benieuwd ben hoe anderen hier over denken/wat gangbare bestaande tools zijn. Ik wil dit wel aanvliegen vanaf de developmentkant, ik ben dus niet op zoek naar een stukje kant en klare software voor een bepaald OS, maar naar een basis om op te bouwen of een library/framework om op in te haken.
Huidige opzet
Ik heb een opslagserver met een heleboel bestanden van verschillende types, daarna doe ik nog wel eens aan het binnenhalen van grote hoeveelheden informatie; denk aan bijvoorbeeld alle producten van de GraphQL API van de supermarkt.Om dit te bewerkstelligen heb ik een hele hoop losse scriptjes, die allemaal gebruik maken van een library om progress bars te laten zien (mpb).
Het nadeel is dat ik nu dus altijd een tmux sessie heb draaien die deze taken uitvoert, per taak het scriptje moet draaien, en weer met SSH moet verbinden om te kijken hoe het er mee staat. Soms crasht een proces of treedt er een timeout op die ik niet afgevangen blij te hebben, en hoewel ik wel weer wat code zou kunnen schrijven om dan via notify.run of Discord oid een notificatie te sturen, blijft het allemaal een beetje in elkaar gehackt.
Mogelijke nieuwe opzet
Ik zie voor me een web-UI waar ik op inlog, een sidebar met alle scripts die beschikbaar zijn, dan als je er een aanklikt in de bovenste helft een scherm met de actieve run (indien die er is), hier per taak een voortgangsbalkje, die je kunt uitklappen om de onderliggende taak te zien. De data van iedere run wordt permanent gelogd, en met een druk op de knop kun je van de actieve run ook de al voltooide taken/subtaken zien. Onderin datzelfde scherm zie je een lijst voltooide taken, met per taak ook of ze gelukt zijn en hoe lang ze gedraaid hebben. Klikken op de taak klapt die uit tot dezelfde weergave als de actieve taak, waar je helemaal door kunt klikken naar iedere subtaak om alle details te zien.Hierbij zou dan een generieke class zijn (een soort van custom thread class) die een (sub)taak uitvoert en informatie terug naar boven stuurt, waarmee iedere taak alleen zijn eigen code hoeft uit te voeren en evt. onderliggende taken hoeft af te wachten.
In de basis zou het al mooi zijn om alleen de weergave hiervoor te hebben, maar het zou helemaal vet zijn als je daarnaast óók een tmux sessie ofzo aftrapt om de processen daadwerkelijk in uit te voeren.
En toen
Nou had ik dit allemaal uitgedacht, en toen bedacht ik me dat dit wel érg lijkt op bijv. Laravel Horizon. Mijn huidige code is in NodeJS en ik ben niet van plan om dat om te gooien naar PHP, maar ik kan me dus ook niet voorstellen dat er geen bestaande optie is.Dus voor ik ga knutselen met React oid en een hele hoop code ga schrijven ben ik eigenlijk wel benieuwd of er hier mensen zijn die hier ideeën over hebben, of bestaande tools kennen die hierin kunnen voorzien.
In het kort
Welke tools gebruik of ken jij om achtergrondtaken uit te voeren en realtime te monitoren, of welke oplossing heb je hier zelf voor bedacht?Welke problemen of ideeën schieten te binnen bij het lezen van dit topic?