Avatar billede sekhmet_ds Nybegynder
12. december 2002 - 16:35 Der er 7 kommentarer og
1 løsning

Køre program hver x'te minut (time, dag, måned, år, etc.)

Jeg er ved at lave et simpelt backup program, og lige nu har jeg sådan at den bare kører hvert x'te time (og derimellem sover den bare).
Det jeg så gerne vil at lave så den kan kører på bestemte tidspunkter (f.eks. hver mandag kl. 8).
Spr. er så hvordan man smartest gør det. Har både overvejet at lade den vågne engang imellem og tjekke om det er tid, eller bare lade den sove indtil mandag kl. 8.
Men begge dele virker rimelig tåbeligt (især hvis der f.eks. er 1 måned mellem hver gang den skal køre).

Findes der en smartere måde (det gør der jo nok)?

Ved godt det er et ret generelt programmerings spr. men eftersom jeg laver det i C# virkede det mest logisk at stille det i .NET kategorien.
Avatar billede jensendk Nybegynder
12. december 2002 - 16:38 #1
Spring over hvor gærdet er hullet.. Brug Cron...
Avatar billede sekhmet_ds Nybegynder
12. december 2002 - 16:51 #2
Det må du vist lige uddybe?
Avatar billede sekhmet_ds Nybegynder
12. december 2002 - 16:53 #3
Fandt lige System.Threading.Timer klassen, som umiddelbart ser ud til at kunne gøre det jeg ønsker. Men det svare umiddelbart bare til at lade den sove i f.eks. 1 måned. Nogen der kender til denne klasse?
Avatar billede kichian Nybegynder
12. december 2002 - 17:38 #4
Det smarteste er vel at lade den sove i x-antal sekunder. Så kontrollerer den joblisten om der er et job der skal udføres, udfører dette. og sover igen.

Det tager ingen cpu-ressourcer med en sovende tråd.
Avatar billede sekhmet_ds Nybegynder
12. december 2002 - 18:05 #5
kichian> Det er korrekt at det ikke tager cpu-resourcer at lade en tråd sove, men der er jo ikke tale om sekunder....der er måske tale om måneder, hvorfor jeg syntes der måske findes en smartere måde.

Som f.eks. at lade programmet bruge den i Windows indbyggede "Scheduled Tasks". Jeg ved bare ikke helt hvordan jeg (1) skriver til den inde fra et program og (2) hvordan jeg får den til "kalde" en metode i et allerede kørende program.
Avatar billede a1a1 Novice
12. december 2002 - 19:40 #6
lav en service applikation :)

der er enda eksempler i quickstart hjælpen

;)
Avatar billede kichian Nybegynder
13. december 2002 - 15:09 #7
Hvis jobbet kun skal køre med måneders mellemrum, så lad programmet køre ved Windows-startup. Der kan det så checkke om det er tid til at gøre det der nu skal gøres.
ad (2)
Alle andre løsninger baserer sig på en tråd der tjekker med passende små intervaller. Hvilket er det generelle tilfælde.
ad (1)
Evt kan du få Scheduled Tasks til at køre dit program en gang om ugen/måneden. Her tjekker dit program så selv om det skal udføre noget eller bare dø igen.
Avatar billede sekhmet_ds Nybegynder
14. december 2002 - 05:17 #8
Ok....jamen så tror jeg at jeg holder mig til tråd løsningen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester