Avatar billede Jonas Nybegynder
17. november 2011 - 11:21 Der er 6 kommentarer og
1 løsning

Køre 4 metoder og samme metode flere gange dagligt

Hejsa,

Jeg har lavet fire metoder nu, der indekserer artikler fra forskellige udbydere i hhv. Danmark, USA, Finland og Brasilien (den sidste er dog ikke helt klar endnu ;)). Programmet er blot et hobby projekt for at lære java...

Der kører fire forskellige metoder, der henter forskellige typer af informationer, på forskellige tider af dagen. De to af metoderne skal køre hvert halve minut imellem kl. 8 og 16. De to sidste skal blot køre en enkelt gang efter kl. 16.

Jeg har lavet en løsning, hvor jeg har lavet en Thread og inde i den placeret en while(true)-løkke. Deri starter jeg med at opdatere tiden, dernæst kører jeg en række IF-sætninger som kigger på tiden og derefter lader tråden sove i 30 sekunder imellem kl. 8 og 16, og ellers lader den sove i en time og tjekker tiden igen.

Mit spørgsmål er så - i USA og Brasilien er tidszonerne anderledes, og mit system ryger derfor lidt på gulvet :) Er der en smart måde at håndtere dette på?
Avatar billede arne_v Ekspert
17. november 2011 - 15:16 #1
Du kan lave koden saa den bruger lokal tid hvor programmet koerer eller bruge dansk tid (eller GMT/UTC) uanset hvor programmet koerer.

Hvad er det du mangler?
Avatar billede arne_v Ekspert
17. november 2011 - 15:17 #2
Der er andre muligheder end Thread og sleep:

timers
rigtig schedulibg software saasom Quartz
Avatar billede Jonas Nybegynder
17. november 2011 - 16:05 #3
Jaaeh, altså egentligt virker min thread løsning sådan OK... Hvis nu vi kører det lidt ned i gear, så har jeg én metode. Den vil jeg gerne kalde på forskellige tidspunkter af dagen og med forskellige String Args. De forskellige string args kan jeg definere gennem min SQL sætning der spørger på hvilke kilder der skal tjekkes tænker jeg.

Men hvordan får jeg lige bygget to tidszoner ind i hele det her koncept? Nogle kilder skal kaldes fra 8-16 dansk tid, nogle skal kaldes fra 8-16 nyc tid etc... Hvad er den smarteste løsning. Helst en hvor jeg kan bygge videre på det jeg har - men vil selvfølgelig gerne bygge det rigtigt :) Jeg tror bare jeg mister modet, hvis jeg skal slette det jeg har!
Avatar billede arne_v Ekspert
17. november 2011 - 16:22 #4
Hvis det skal laves generelt skal du vil have en Job klasse der beskriver hvor tit jobbet skal koeres og hvornaar og som en del af hvornaar kan der angives tidszone.

Og saa skal testene bruge den information.
Avatar billede Jonas Nybegynder
17. november 2011 - 17:23 #5
Hmm, jeg tror min løsning bliver, at jeg tilføjer åbningstid, lukketid og tidszone til min liste over artikelbaser. Dernæst så laver jeg et SQL-kald der får input med hvad klokken er, og på baggrund af det vælger relevante ting der skal opdateres.

Det må være den bedste løsning for mig, umiddelbart... Er du nogenlunde enig? Tak for inspirationen!

Du må gerne smide et svar :)
Avatar billede arne_v Ekspert
17. november 2011 - 19:46 #6
Enig bortset fra at jeg ikke kan se hvorfor tiden skal hentes fra databasen.

Og svar.
Avatar billede Jonas Nybegynder
17. november 2011 - 21:32 #7
Jaaeh, det var bare for at opbevare de data et simpelt sted... Det kan jeg selvfølgelig også bare hardkode... Men jeg har faktisk fundet en tilforladelig løsning nu :) Tusind tak for hjælpen med at sætte tankerne igang...
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
Kategori
Kurser inden for grundlæggende programmering

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