Basistaken plannen
Implementeer eenvoudige planningsmechanismen om uw bots met specifieke tussenpozen uit te voeren voor continue automatisering.
Basistaken plannen is een gratis Webscraping en bots-les op CoddyKit. Dit is les 3 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Webscraping en bots. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Webscraping en bots bevat in totaal 4 lessen.
Waarom je bot plannen?
Heb je ooit gewenst dat je bot vanzelf kon werken zonder dat je op "Start" hoefde te drukken? Daar komt plannen om de hoek kijken!
Met plannen kan je bot taken automatisch op specifieke tijdstippen of met bepaalde tussenpozen uitvoeren. Dat is bijzonder handig voor:
- Monitoren: Elk uur een website controleren op updates.
- Gegevens verzamelen: Dagelijks nieuwsartikelen ophalen.
- Meldingen: Waarschuwingen versturen wanneer een prijs verandert.
We leren hoe je je bot volgens een eigen planning laat werken.
Je bot pauzeren met `time.sleep()`
De eenvoudigste manier om een vertraging in je Python-bot in te bouwen, is de functie time.sleep() te gebruiken. Deze pauzeert je programma gedurende een opgegeven aantal seconden.
Dit is handig om tussen aanvragen te wachten en zo een server niet te zwaar te belasten, of om processen gewoon te vertragen.
Probeer dit eenvoudige voorbeeld:
import time
def main():
print("Starting task...")
time.sleep(2) # Pause for 2 seconds
print("Task finished after delay.")
if __name__ == "__main__":
main()Taken herhalen
Om je bot iets herhaaldelijk te laten doen, kun je time.sleep() combineren met een while-lus. Zo ontstaat een eenvoudige, doorlopende werking.
Je bot voert de taak uit, wacht en herhaalt dit vervolgens onbeperkt (of totdat je hem stopt).
Wees voorzichtig met oneindige lussen in echte bots: je hebt een manier nodig om ze te stoppen!
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()Wanneer `time.sleep()` niet genoeg is
Hoewel een while-lus met time.sleep() werkt voor eenvoudige herhalingen, heeft deze beperkingen:
- Blokkerend: Het hele programma wordt gepauzeerd. Als er andere dingen moeten gebeuren, stoppen die ook.
- Vaste tussenpozen: Het is lastig om taken op specifieke tijdstippen in te plannen (bijvoorbeeld "elke dag om 9.00 uur") in plaats van alleen "elke X seconden".
- Complexiteit: Het beheren van meerdere, verschillende planningen wordt onoverzichtelijk.
Voor geavanceerdere planningen hebben we een beter hulpmiddel nodig.
Maak kennis met de `schedule`-bibliotheek
Voor flexibeler en beter leesbaar plannen binnen Python is de schedule-bibliotheek een populaire keuze. Hiermee kun je taken en hun planningen op een zeer intuïtieve manier definiëren.
Eerst moet je de bibliotheek installeren:
pip install schedule
Na de installatie kun je precies aangeven wanneer je functies moeten worden uitgevoerd.
Een taak voor later plannen
Met de schedule-bibliotheek kun je eenvoudig een functie na een bepaalde vertraging uitvoeren. Je geeft aan hoe vaak de functie moet worden uitgevoerd en welke functie moet worden aangeroepen.
We maken een eenvoudige functie en plannen deze zo dat hij één keer na enkele seconden wordt uitgevoerd.
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()Terugkerende taken instellen
De echte kracht van schedule zit in het definiëren van terugkerende taken. Je kunt taken elke seconde, minuut, uur of dag laten uitvoeren, of op specifieke dagen van de week.
Hier volgen enkele voorbeelden van terugkerende planningen:
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)
Dit is zeer flexibel!
Je geplande bot uitvoeren
Nadat je je geplande taken hebt gedefinieerd, heb je een manier nodig waarop de schedule-bibliotheek voortdurend kan controleren of er taken moeten worden uitgevoerd. Dit doe je met een eenvoudige lus.
De functie schedule.run_pending() controleert op taken en time.sleep() zorgt ervoor dat je bot niet voortdurend bezig is met controleren.
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()Verder dan plannen in de bot
Hoewel de bibliotheek schedule uitstekend is voor eenvoudige planning binnen één proces, gebruiken bots op grote schaal of voor bedrijfskritieke toepassingen vaak externe planningstools.
- Cron (Linux/macOS): Een krachtig opdrachtregelprogramma om taken te plannen.
- Taakplanner (Windows): Een ingebouwde tool om taken te automatiseren.
- Cloudplanners: Diensten zoals AWS EventBridge of Google Cloud Scheduler voor bots in de cloud.
Deze tools kunnen uw Python-script rechtstreeks starten, wat meer robuustheid en controle op systeemniveau biedt.
Plan het!
Je hebt verschillende manieren geleerd om taken voor je bot te plannen. Nu gaan we je begrip testen!
Samenvatting: je bots plannen
Goed gedaan! Je beheerst de basis van plannen in Python. We hebben behandeld:
time.sleep()gebruiken voor eenvoudige pauzes en basislussen voor herhaling.- De beperkingen van eenvoudige lussen voor complexe planning.
- Hoe je de krachtige bibliotheek
schedulegebruikt voor flexibel taakbeheer. - Het belang van de lus met
schedule.run_pending(). - Een korte kennismaking met externe planningstools voor bots in productie.
Nu kunnen je bots echt voor je werken, zelfs als je er niet bent!
Leer Python met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 12
- Lessen
- 48
Veelgestelde vragen
Is de les “Basistaken plannen” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Webscraping en bots, waaronder “Basistaken plannen”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Webscraping en bots bevat in totaal 4 lessen.
Wat leer ik in “Basistaken plannen”?
Implementeer eenvoudige planningsmechanismen om uw bots met specifieke tussenpozen uit te voeren voor continue automatisering. Je oefent met Webscraping en bots door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Webscraping en bots te beginnen?
Ervaring vooraf is niet nodig. Webscraping en bots op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “Basistaken plannen”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Webscraping en bots?
Ja. Elke les over Webscraping en bots bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Doelstellingen van bots definiëren
- Eenvoudige formulierverzendingen automatiseren
- Basistaken plannen
- Logging en foutafhandeling voor bots