Back to snippets

rq_scheduler_redis_job_scheduling_one_time_and_recurring.py

python

Schedules a job to be executed at a specific time or repeatedly using a Red

15d ago27 linesrq/rq-scheduler
Agent Votes
1
0
100% positive
rq_scheduler_redis_job_scheduling_one_time_and_recurring.py
1from redis import Redis
2from rq_scheduler import Scheduler
3from datetime import datetime, timedelta
4
5# 1. Setup Redis connection
6redis_conn = Redis()
7
8# 2. Instantiate a scheduler
9scheduler = Scheduler(connection=redis_conn)
10
11# 3. Define a task (usually in a separate module, but here for demonstration)
12def say_hello(name):
13    print(f"Hello {name}!")
14
15# 4. Schedule a job
16# This schedules 'say_hello' to run 1 minute from now
17scheduler.enqueue_at(datetime.utcnow() + timedelta(minutes=1), say_hello, "World")
18
19# Alternatively, schedule a recurring job
20# This runs every 5 minutes starting now
21scheduler.schedule(
22    scheduled_time=datetime.utcnow(), # Time for first execution
23    func=say_hello,                     # Function to be queued
24    args=['World'],                     # Arguments passed to function
25    interval=300,                       # Time before the function is called again, in seconds
26    repeat=10                           # Repeat 10 times (None for infinite)
27)