Gå til innhold

[Python] Selvstartende script, 1 gang i timen


Anbefalte innlegg

Skrevet

Hei!

 

Har et pythonscript som henter aksjekurser fra en nettadresse og oppdaterer en liste som ligger på en hjemmeside, men dette må jeg kjøre selv for å oppdatere kursene. Er det mulig at jeg får til at det automatisk kjører seg selv, kanskje 1 gang i timen?

Videoannonse
Annonse
Skrevet

Takk for svar!

 

På den time.sleep(3600) kan jeg jo kjøre en teller som setter time.sleep(12*3600) siden det ikke er nødvendig å kjøre scriptet utenfor børsens åpningstid? Noen tips til hvordan jeg gjør det i praksis?

Skrevet

Hva med å heller i begynnelsen av loppen sjekke hva klokka er nå. Og kjør koden lun om klokka er mellom børstidene.

Skrevet

<loop inntil programmet avsluttes>

<hva er klokka?>

<hvis klokka er innenfor riktig tid> -> oppdater verdiene

<vent 1 time>

<>

 

men eventuelt så kunne du ha laget litt mere og fått noe som:

<loop inntill avsluttes>

<hva er klokka?>

<hvis klokka er innenfor riktig tid>

<har det gått mer eller akkurat time siden sist jeg sjekket?> (dettte må da lagres i en anna variabel)

<hvs ja> -> oppdater verdier, og nullstill "timeren"

<>

<vent N minutter (mindre enn 1 time, så da får du mere nøyaktige tider. for hva hvis du starter programmet ditt slik at du ikke får den første oppdateringen din før nesten 1 time etter børsåpning)>

<>

 

programmet ditt vil allitd kjøre, selv om det ikke er åpningstid, men så skal det sies at dette ikke akkurat kommer til å kvele systemet ditt. Et lite python script som 1 gang hvert 10ende min sjekker hva klokka er, krever ikke mye ressurser =)

 

Jeg hadde gått for mitt andre alternativ, for da får du en mere nøyaktig oppdatering av tiden, og du vil være "raskere" ut med å få en oppdatering, enn hvis programmet f.eks starter kvart over, og oppdateringene kommer ut 10 på hel, da vil den "forsinkelsen" være med under hele kjøringen.

 

Kan hende det er noen fancy måter å gjøre noe sånt i python på, men jeg skriver ikke i python så har lite kompetanse der =)

Skrevet (endret)

Bruke OS sin schedule som etse foreslår er greit.

Python har en schedule module bygd in.

Her et eksempel hvor jeg parser ut prisen på bønner med BeautifulSoup og med sched printer ut resultalt med 10 sek intervall.

import sched, time
import urllib2
from BeautifulSoup import BeautifulSoup

def do_event():
  url = urllib2.urlopen('http://beans.itcarlow.ie/prices.html')
  soup = BeautifulSoup(url)
  tag = soup.find('strong')
  print tag.text
  s.enter(10, 1, do_event, ())

if __name__ == '__main__':
  s = sched.scheduler(time.time, time.sleep)
  s.enter(10, 1, do_event, ())
  s.run()

Endret av SNIPPSAT

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...