Puncte:1

Există o modalitate de a pune în coadă scripturile în ubuntu/debian/linux?

drapel ph

Am o întrebare ciudată (cel puțin pentru mine!), dar nu sunt sigur cum să o abordez.

fundal

Am câteva joburi batch (scripturile python numite prin cron sau scripturile python fiind apelate de scriptul bash). De exemplu, 20 de joburi ETL și 20 de joburi de prelucrare a datelor. Asta se întâmplă în momente diferite.

Abordarea actuală

Îmi păstrez serverul pornit și rulez joburi cron pentru a rula scripturile la ora prevăzută (nu toate rulează în același timp... unul poate rula la 13:00, în timp ce altul rulează la 17:00). Acest lucru funcționează perfect chiar acum

Problemă Vreau să economisesc bani și locurile de muncă nu trebuie să înceapă exact la ora stabilită de mine, ar putea avea câteva minute sau o oră sau două, așa că mă gândeam să folosesc instanțe preemptibile care pornesc serverul într-un program.

Mă gândeam să pornesc serverul în fiecare oră și apoi procesează toate lucrările care au trecut de programul lor și care nu au fost încă realizate.

Habar n-am cum să fac asta! Există vreo modalitate prin care pot programa asta în ubuntu? M-am gândit să înființez o bază de date externă și să am un script care îl interoghează pentru a vedea ce procese trebuie să înceapă, dar am simțit că a fost exagerat, bănuiesc că poate este o problemă comună care are o soluție mai simplă.

Vă rog să-mi spuneți!

user535733 avatar
drapel cn
Ce vrei să spui prin „*pornirea serverului la fiecare oră*”? Acest server este pe bare metal? Sau este o instanță cloud? Sau container sau VM pe o gazdă?
Lostsoul avatar
drapel ph
@user535733 Pe GCP, puteți programa un server să pornească la o anumită oră. În mod normal, aș rula scriptul la pornire, dar folosind această abordare ar trebui să am aproximativ 40 de servere cu scripturi de pornire diferite.Încerc să fac ca un server să facă lucruri diferite pe baza unei ferestre de coadă/de timp.
pLumo avatar
drapel in
Puteți utiliza `@reboot` ca interval cron. Apoi verificați într-un script ce trebuie făcut
Lostsoul avatar
drapel ph
@pLumo Îmi cer scuze, nu sunt familiarizat cu această comandă. L-am căutat, dar am găsit comunul pentru a-mi reporni serverul? Știi ce ar trebui să caut?
user535733 avatar
drapel cn
Pentru cei care nu se pricep la cloud-speak, GCP = Google Cloud. Aceasta pare o sarcină normală pentru timer-uri systemd sau anacron, nu cron. Atât cronometrele, cât și anacronul sunt proiectate să ruleze dacă sistemul a ratat o lucrare din cauza inactivității. Nu trebuie să porniți mașina la fiecare oră pentru lucrări ratate. Puteți începe o dată pe zi...sau o dată pe lună. Porniți-l atunci când aveți nevoie de el și lăsați cronometrele sau anacronul să se ocupe de logica de a afla ce a fost ratat și ce joburi să ruleze și în ce ordine.
bac0n avatar
drapel cn
cred că cauți [OnUnitActiveSec=](https://unix.stackexchange.com/questions/235102/systemd-timer-onunitactivesec-vs-oncalendar-for-anacron-replacement/235303#235303)
bac0n avatar
drapel cn
Înrudit: [Problemă unison și timer systemd](https://askubuntu.com/q/656075/986805)
Lostsoul avatar
drapel ph
Wow, mulțumesc @user535733 și tuturor pentru ajutor! Am căutat la Anacron și se pare că am nevoie. Daca vrei sa pui raspunsul pot sa votez/accept. Mi-a fost greu să găsesc informații despre acest lucru când am căutat, așa că să le ai drept răspuns sper să-i ajute pe alții cu această provocare similară. Mulțumesc!

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.