Planlægning af grundlæggende opgaver
Implementer enkle planlægningsmekanismer, så Deres bots kører med bestemte intervaller og automatiseringen fortsætter.
Planlægning af grundlæggende opgaver er en gratis Webscraping og botudvikling-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Webscraping og botudvikling, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Webscraping og botudvikling-kurset indeholder 4 lektioner i alt.
Hvorfor planlægge din bot?
Har du nogensinde ønsket, at din bot kunne køre af sig selv, uden at du trykker på "Kør"? Det er her, planlægning kommer ind i billedet!
Planlægning gør det muligt for din bot at udføre opgaver automatisk på bestemte tidspunkter eller med bestemte intervaller. Det er især nyttigt til:
- Overvågning: Kontrol af en webside hver time for opdateringer.
- Dataindsamling: Daglig indsamling af nyhedsartikler.
- Notifikationer: Afsendelse af advarsler, når en pris ændrer sig.
Lad os lære, hvordan du får din bot til at arbejde efter sin egen tidsplan.
Sæt din bot på pause med `time.sleep()`
Den enkleste måde at indføre en forsinkelse i din Python-bot på er at bruge funktionen time.sleep(). Den sætter programmet på pause i et angivet antal sekunder.
Det er praktisk, når du vil vente mellem forespørgsler for ikke at overbelaste en server, eller når du bare vil sænke hastigheden.
Prøv dette enkle eksempel:
import time
def main():
print("Starting task...")
time.sleep(2) # Pause for 2 seconds
print("Task finished after delay.")
if __name__ == "__main__":
main()Gentagelse af opgaver
Hvis du vil have din bot til at gøre noget gentagne gange, kan du kombinere time.sleep() med en while-løkke. Det skaber en grundlæggende, kontinuerlig kørsel.
Din bot udfører opgaven, holder pause og gentager derefter processen uendeligt (eller indtil du stopper den).
Vær forsigtig med uendelige løkker i rigtige bots – du skal have en måde at stoppe dem på!
import time
def main():
counter = 0
while counter < 3: # Run 3 times for demo
print(f"Bot is running task {counter + 1}...")
time.sleep(3) # Wait 3 seconds
counter += 1
print("Bot finished its scheduled runs.")
if __name__ == "__main__":
main()Når `time.sleep()` ikke er nok
Selvom en while-løkke med time.sleep() fungerer til simpel gentagelse, har den begrænsninger:
- Blokering: Hele programmet sættes på pause. Hvis du har andre ting, der skal udføres, stopper de også.
- Faste intervaller: Det er svært at planlægge opgaver på bestemte klokkeslæt (f.eks. "hver dag kl. 9") i stedet for blot "hver X. sekund".
- Kompleksitet: Håndtering af flere forskellige tidsplaner bliver rodet.
Hvis du har brug for mere avanceret planlægning, skal vi bruge et bedre værktøj.
Mød `schedule`-biblioteket
Til mere fleksibel og læsevenlig planlægning i Python er biblioteket schedule et populært valg. Det lader dig definere opgaver og deres tidsplaner på en meget intuitiv måde.
Først skal du installere det:
pip install schedule
Når det er installeret, kan du angive præcis, hvornår funktionerne skal køres.
Planlægning af en fremtidig opgave
Biblioteket schedule gør det nemt at køre en funktion efter en bestemt forsinkelse. Du angiver, hvor ofte den skal køres, og hvilken funktion der skal kaldes.
Lad os oprette en enkel funktion og planlægge, at den skal køre én gang efter nogle få sekunder.
import schedule
import time
def my_task():
print("This task ran as scheduled!")
def main():
print("Scheduling task to run in 5 seconds...")
schedule.every(5).seconds.do(my_task)
# This loop keeps the scheduler running
start_time = time.time()
while True:
schedule.run_pending()
time.sleep(1) # Check every second
# For this demo, let's stop after 6 seconds
if time.time() > start_time + 6:
break
print("Scheduler stopped.")
if __name__ == "__main__":
main()Opsætning af gentagne opgaver
Den virkelige styrke ved schedule ligger i definitionen af gentagne opgaver. Du kan planlægge opgaver til at køre hvert sekund, minut, time eller dag eller på bestemte ugedage.
Her er nogle eksempler på, hvordan du kan definere gentagne tidsplaner:
schedule.every(10).minutes.do(job)schedule.every().hour.do(job)schedule.every().day.at("10:30").do(job)schedule.every().monday.do(job)schedule.every().wednesday.at("13:15").do(job)
Det er meget fleksibelt!
Kørsel af din planlagte bot
Når du har defineret dine planlagte opgaver, skal du have en måde, hvorpå biblioteket schedule hele tiden kan kontrollere, om nogle opgaver skal køres. Det gøres med en enkel løkke.
Funktionen schedule.run_pending() kontrollerer opgaverne, og time.sleep() sikrer, at din bot ikke hele tiden er optaget af at kontrollere dem.
import schedule
import time
def scrape_news():
print("Scraping news headlines...")
# In a real bot, this would fetch data
print("News scraped at", time.strftime("%H:%M:%S"))
def check_price_alert():
print("Checking for price drops...")
# In a real bot, this would check prices
print("Price check at", time.strftime("%H:%M:%S"))
def main():
print("Bot is starting. Tasks scheduled.")
schedule.every(5).seconds.do(scrape_news)
schedule.every(10).seconds.do(check_price_alert)
# Main loop to run pending tasks
start_time = time.time()
while True:
schedule.run_pending()
time.sleep(1) # Check every second
if time.time() - start_time > 25: # Run for 25 seconds for demo
break
print("Bot finished its scheduled operations for the demo.")
if __name__ == "__main__":
main()Ud over planlægning i botten
Selvom biblioteket schedule er velegnet til enkel planlægning i processen, bruger bots i stor skala eller med kritiske funktioner ofte eksterne værktøjer til planlægning.
- Cron (Linux/macOS): Et effektivt kommandolinjeværktøj til planlægning af opgaver.
- Task Scheduler (Windows): Et indbygget værktøj til automatisering af opgaver.
- Cloud Schedulers: Tjenester som AWS EventBridge eller Google Cloud Scheduler til cloudbaserede bots.
Disse værktøjer kan selv starte dit Python-script og giver dermed større robusthed og kontrol på systemniveau.
Planlæg det!
Du har lært om forskellige måder at planlægge opgaver for din bot på. Nu kan du teste din forståelse!
Opsummering: Planlægning af dine bots
Godt gået! Du har lært det grundlæggende om planlægning i Python. Vi gennemgik:
- Brug af
time.sleep()til enkle pauser og grundlæggende løkker til gentagelse. - Begrænsningerne ved enkle løkker til kompleks planlægning.
- Sådan du bruger det effektive bibliotek
scheduletil fleksibel håndtering af opgaver. - Vigtigheden af løkken
schedule.run_pending(). - En kort omtale af eksterne værktøjer til planlægning af bots i produktion.
Nu kan dine bots virkelig arbejde for dig, selv når du ikke er til stede!
Lær Python med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 12
- Lektioner
- 48
Ofte stillede spørgsmål
Er lektionen “Planlægning af grundlæggende opgaver” gratis?
Ja — alle 3 lektioner i læringssporet Webscraping og botudvikling, inklusive “Planlægning af grundlæggende opgaver”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Webscraping og botudvikling-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Planlægning af grundlæggende opgaver”?
Implementer enkle planlægningsmekanismer, så Deres bots kører med bestemte intervaller og automatiseringen fortsætter. Du øver dig i Webscraping og botudvikling med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Webscraping og botudvikling?
Der kræves ingen tidligere erfaring. Webscraping og botudvikling på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.
Hvor lang tid tager lektionen “Planlægning af grundlæggende opgaver”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Webscraping og botudvikling-lektion?
Ja. Alle Webscraping og botudvikling-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Definition af botmål
- Automatisering af enkle formularindsendelser
- Planlægning af grundlæggende opgaver
- Logging og fejlhåndtering for bots