python-rq-scheduler
Port variant v13
Summary Job scheduling capabilities to Redis Queue (3.13)
BROKEN
Package version 0.14.0
Homepage https://github.com/rq/rq-scheduler
Keywords python
Maintainer Python Automaton
License Not yet specified
Other variants v12
Ravenports Buildsheet | History
Ravensource Port Directory | History
Last modified 15 NOV 2024, 16:08:50 UTC
Port created 08 JAN 2023, 04:18:24 UTC
Subpackage Descriptions
single ============ RQ Scheduler ============ [RQ Scheduler] is a small package that adds job scheduling capabilities to [RQ], a [Redis] based Python queuing library. ==================== Support RQ Scheduler ==================== If you find ``rq-scheduler`` useful, please consider supporting its development via [Tidelift]. ============ Requirements ============ * `RQ`_ ============ Installation ============ You can install `RQ Scheduler`_ via pip:: pip install rq-scheduler Or you can download the latest stable package from [PyPI]. ===== Usage ===== Schedule a job involves doing two different things: 1. Putting a job in the scheduler 2. Running a scheduler that will move scheduled jobs into queues when the time comes ---------------- Scheduling a Job ---------------- There are two ways you can schedule a job. The first is using RQ Scheduler's enqueue_at .. code-block:: python from redis import Redis from rq import Queue from rq_scheduler import Scheduler from datetime import datetime scheduler = Scheduler(connection=Redis()) # Get a scheduler for the "default" queue scheduler = Scheduler('foo', connection=Redis()) # Get a scheduler for the "foo" queue # You can also instantiate a Scheduler using an RQ Queue queue = Queue('bar', connection=Redis()) scheduler = Scheduler(queue=queue, connection=queue.connection) # Puts a job into the scheduler. The API is similar to RQ except that it # takes a datetime object as first argument. So for example to schedule a # job to run on Jan 1st 2020 we do: scheduler.enqueue_at(datetime(2020, 1, 1), func) # Date time should be in UTC # Here's another example scheduling a job to run at a specific date and time (in UTC), # complete with args and kwargs. scheduler.enqueue_at(datetime(2020, 1, 1, 3, 4), func, foo, bar=baz) # You can choose the queue type where jobs will be enqueued by passing the name of the type to the scheduler # used to enqueue scheduler = Scheduler('foo', queue_class="rq.Queue") scheduler.enqueue_at(datetime(2020, 1, 1), func) # The job will be enqueued at the queue named "foo" using the queue type "rq.Queue" The second way is using enqueue_in. Instead of taking a datetime object, this method expects a timedelta and schedules the job to run at X seconds/minutes/hours/days/weeks later. For example, if we want to monitor how popular a tweet is a few times during the course of the day, we could do something like .. code-block:: python from datetime import timedelta # Schedule a job to run 10 minutes, 1 hour and 1 day later scheduler.enqueue_in(timedelta(minutes=10), count_retweets, tweet_id) scheduler.enqueue_in(timedelta(hours=1), count_retweets, tweet_id) scheduler.enqueue_in(timedelta(days=1), count_retweets, tweet_id)
Configuration Switches (platform-specific settings discarded)
PY312 OFF Build using Python 3.12 PY313 ON Build using Python 3.13
Package Dependencies by Type
Build (only) python313:dev:std
python-pip:single:v13
autoselect-python:single:std
Build and Runtime python313:primary:std
Runtime (only) python-crontab:single:v13
python-rq:single:v13
python-python-dateutil:single:v13
python-freezegun:single:v13
Download groups
main mirror://PYPIWHL/bb/d0/28cedca9f3b321f30e69d644c2dcd7097ec21570ec9606fde56750621300
Distribution File Information
d4ec221a3d8c11b3ff55e041f09d9af1e17f3253db737b6b97e86ab20fc3dc0d 13874 python-src/rq_scheduler-0.14.0-py2.py3-none-any.whl
Ports that require python-rq-scheduler:v13
python-meraki-netbox-plugin-pdu:v13 Power Distribution Unit plugin for Netbox (3.13)