python-rq-scheduler
Port variant py311
Summary Job scheduling capabilities to Redis Queue (3.11)
Package version 0.11.0
Homepage https://github.com/rq/rq-scheduler
Keywords python
Maintainer Python Automaton
License Not yet specified
Other variants py310
Ravenports Buildsheet | History
Ravensource Port Directory | History
Last modified 07 JAN 2023, 04:18:24 UTC
Port created 07 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) # 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)
PY310 OFF Build using Python 3.10 PY311 ON Build using Python 3.11
Package Dependencies by Type
Build (only) python-pip:single:py311
autoselect-python:single:standard
Build and Runtime python311:single:standard
Runtime (only) python-croniter:single:py311
python-rq:single:py311
python-python-dateutil:single:py311
Download groups
main mirror://PYPIWHL/44/b1/e36da6d642bf3b5e0e2ca964ee9a23c9925265469adf0f9639a43281d360
Distribution File Information
da94e9b6badf112995ff38fe16192e4f4c43c412b3c9614684ed8c8f7ca517d2 12517 rq_scheduler-0.11.0-py2.py3-none-any.whl
Ports that require python-rq-scheduler:py311
python-meraki-netbox-plugin-pdu:py311 Power Distribution Unit plugin for Netbox (3.11)