Cronból párhuzamosan induló scriptek kiszűrése

Sziasztok!

Adott egy videókonvertáló rendszer aminek a feladata, hogy rendszeres időközönként különböző mappákba feltöltött videókat átkonvertáljon. Az automatikus videókonvertálás cronból fut. Viszont megszaporodtak a 4K-s videók is melyeket konvertálni kell és jó lenne ha ezek konvertálása nem egyszerre indulnának. A felhasználó egy webes felületen tudja beállítani az automatikus indításokat. Szeretném ha már a webfelületen ki lennének szűrve azok a projektek melyek egyszerre indulnának, magyarul kapjon egy warningot ha olyan cron beállítások szerepelnek, melyeknél van olyan időpont amikor két konvertálás egyszerre indulna. Lényeg, hogy ne a konvertálás indulásakor derüljön ki, hogy pont akkor indul a másik is, hanem magát a crontab listát (amiben 15-20 projekt indítása van) kellene úgy listázni, hogy egyértelműen látszódjanak azok melyeknél lehetséges az egyszerre indulás.

Hozzászólások

Ezt picit másképp közelíteném meg. Azt nem tudod, hogy meddig tart egy videó konvertálása, tehát a párhuzamos konvertálásokat nem tudod ezzel a módszerrel limitálni.
Én minden videóhoz egy tól-ig intervallumot kérnék be a felhasználótól, hogy mikor szeretné elindíttatni a konvertálást.
A feltöltött videókat egy mondjuk percenként futó script csekkolná, hogy van-e olyan, ami elkezdhető, és van-e szabad konvertáló folyamat. Ha nincs szabad "slot", akkor a következő körben újra vizsgál, ha van, akkor elindít egy konvertálást úgy, hogy a konvertálás kezdésére rendelkezésre álló intervallumban arányaiban legrosszabbul álló videót adja oda a konverternek.
A valós probléma szerintem nem az, hogy n+1 konverzió indul egyszerre, hanem az, hogy n+1 fut párhuzamosan.
Annno Vudumen alkotott egy egész tisztességes rendszert hasonló feladatokra. Sajnos őt már nem lehet megkérdezni, hogyan csinálta :-(

Le vannak limitálva a párhuzamosan elinduló konvertálások, csak a kollégák csodálkoznak, hogy miért nem indulnak el. Ezért lenne jó, hogy már a weboldalon lássa, hogy ez meg az ekkor menne egyszerre.

-------------------
https://onlinestream.hu/ - A legtöbb magyar rádió és TV egy helyen!

- rendszeres időközönként különböző mappákba feltöltött videókat
Rendszeres=cron?
- automatikus videókonvertálás cronból fut
Akkor rendszeresen.
- jó lenne ha ezek konvertálása nem egyszerre indulnának
Semmi akadálya.
- felhasználó egy webes felületen tudja beállítani az automatikus indításokat
Most akkor automatikus, vagy beállítja, vagy rendszeres?
És mi van, ha nem állítja be?
- ki lennének szűrve azok a projektek melyek egyszerre indulnának
Automatikusan, vagy beállítva, vagy rendszeresen?
Mi köze ehhez a 4k-nak?
- konvertálása nem egyszerre indulnának (egyeztetni)
Egyszerre, de mivel igen vagy mivel nem?

Úgy érzem, hogy ezt a nyelvtannácistának tűnő halmazt rendbetéve netalántánhacsaknem kiderülne vajon mit is kell csinálni. :-D

Nem at kell ide.

- Ha érkezett egy új fájl,
-- ha nem fut konvertálás, akkor indít egyet
-- ha meg fut, akkor sorba rakja
- Ha lefutott egy kovertálás
-- van valami a sorban, akkor kiveszi és indítja

Megvan?
No, akkor képzeld el ugyanezt 120+ "munkaterületen", 20+ szerverrel ÉS "windows buffer cache állagmegóvással" ;) - a szerver és a munkaterület gyorsaságának függvényében. :-D

A lényeg, hogy egy ilyesmiből kellene nekem egy olyan, hogy mely folyamatnál van olyan, hogy egyszerre indulnának el:


0 18 4 11 7 /meencp/bin/ucmd convert 1 10 0 0
5 18 4 11 7 /meencp/bin/ucmd convert 1 11 0 0 0
3 19 4 11 7 /meencp/bin/ucmd convert 1 12 0 0 0
8 * 4 11 7  /meencp/bin/ucmd convert 1 13 0 0 0
8 20 * 11 7 /meencp/bin/ucmd convert 1 14 0 0 0
9 21 4 11 7 /meencp/bin/ucmd convert 1 16 0 0 0
0,15,30,45 21 4 11 7 /meencp/bin/ucmd convert 1 17 0 0 0
7 22 4 11 7 /meencp/bin/ucmd convert 1 18 0 0 0
38 0 5 11 1 /meencp/bin/ucmd convert 1 19 0 0 0
46 1 5 11 1 /meencp/bin/ucmd convert 1 20 0 0 0
47 1 5 11 1 /meencp/bin/ucmd convert 1 21 0 0 0
13 3 5 11 1 /meencp/bin/ucmd convert 1 22 0 0 0
7 4 5 11 1 /meencp/bin/ucmd convert 1 23 0 0 0
4 5 5 11 1 /meencp/bin/ucmd convert 1 24 0 0 0
59 5 5 11 1 /meencp/bin/ucmd convert 1 25 0 0 0
0 8 5 11 1 /meencp/bin/ucmd convert 1 26 0 0 0
5 8 5 11 1 /meencp/bin/ucmd convert 1 27 0 0 0
59 8 5 11 1 /meencp/bin/ucmd convert 1 28 0 0 0
4 9 5 11 1 /meencp/bin/ucmd convert 1 29 0 0 0
59 9 5 11 1 /meencp/bin/ucmd convert 1 30 0 0 0
4 10 5 11 1 /meencp/bin/ucmd convert 1 1 0 0 0

(az időpontok csak példák, nem valósak)

-------------------
https://onlinestream.hu/ - A legtöbb magyar rádió és TV egy helyen!

Miért gond az egyszerre _indulás_? Videókonvertálásnál pont nem a processz indulása az, ami erőforrásigényes.
De ha ez kell, akkor én első körben nekiugranék az időadatokat konszolidálni, azaz ha valamelyik mezőben felsorolás, tartomány, netán * van, akkor azt annyi időpontra szétpakolni, ahány értéket be lehet helyettesíteni. Ez szép móka, hiszen például a harmadik mezőben egy * nemcsak a negyedik mezőtől, de még az aktuális évtől is függ, hogy mennyi lehet maximum, úgyhogy itt vigyázni kell, mint ahogy arra is, hogy az 5. mező meg pont, hogy szűkíti a releváns sorok számát. Kellően átgondolva persze nem kunszt, de azért gondolkodós a feladat :-P
Utána ezeket a már egzakt időpontokat jelentő számsorokat kellene csak sorbarakni, és megnézni, hogy van-e olyan, amiből több, mint egy van. A számsorok mellé eltárolva azt, hogy a crontab melyik sorához tartoznak, máris megkapod, hogy melyik sorok "ütik" egymást.
Másik megközleítés lehet adott időre "előre" végigpörgetni az időt perces lépésekben, és a cronból "lenyúlt" :) kóddal tesztelni, hogy adott sorok közül melyik "sül el".

De tényleg jó lenne a ténylegesen megvalósítandó feladatot is látni, illetve azt, hogy a crontab-ba hogyan és miért kerül be a bejegyzés, mert ha tényleg "egylövetű" futttasokról van szó, akkor "at" meg "atq" parancsokat javaslom alaposan nézegetni :-P
Ha meg nem egylövetű dolgokról van szó, és programból kerül a crontabba a bejegyzés, akkor nagyon nem mindegy, hogy a crontab első öt mezőjét hogyan kerül kitöltésre, lehet-e a napot/hónapot rövidítéssel megadni, etc.

A videók nagy része 1-3 perc körüli és amikor ezek konvertálása egyszerre indul el akkor pár percre még annak a gépnek a Samba megosztása is használhatatlan lesz, hiába trükközök a prioritásokkal. De néha előfordulnak hosszabb videók is.
Az alap felállás az, hogy a videókonvertáló meghatározott időpontokban (pl 5 percenként) ránéz a beállított mappára és az ott talált videót átkonvertálja. Emiatt kell a cron. Viszont van néhány olyan projekt, amit a vágók maguk állítanak be akár ideiglenesen, és a beállításkor lássák, hogy ütik egymást ami emiatt akár jóval később készülhet el vele. Backend oldalon ez nyilván már meg van oldva: Ha már megy konvertálás akkor az újat nem indítja el, csak a legközelebbi időpontban. Idáig is OK a dolog, csak a vágók bepipálják a sürgős konvertálást is, mert nekik minden azonnal kell. A szűrés emiatt kell, hogy közölje vele a rendszer, hogy adott esetben sokra nem megy azzal ha sürgősre állítja be.
-------------------
https://onlinestream.hu/ - A legtöbb magyar rádió és TV egy helyen!

Nézem itt már egy ideje, hogy mi a francnak ezt cron-nal bonyolítani, amikor a batch a jó megoldás erre. Szóval miért is kell túlbonyolítani? A batch szépen sorbaállítja, és (egyesével, kettesével, ahogy belövöd) elindítja a konvertálást. Eleve nem értem, hogy ha zavaró terhelést okoz, ha több konvertálás zajlik, akkor miért adnak meg a feltöltő kollégák időpontot? Álljanak sorban és haladjanak szépen sorban.

=====
tl;dr
Egy-két mondatban leírnátok, hogy lehet ellopni egy bitcoin-t?