Port variant | v12 |
Summary | Job scheduling capabilities to Redis Queue (3.12) |
BROKEN | |
Package version | 0.13.1 |
Homepage | https://github.com/rq/rq-scheduler |
Keywords | python |
Maintainer | Python Automaton |
License | Not yet specified |
Other variants | v11 |
Ravenports | Buildsheet | History |
Ravensource | Port Directory | History |
Last modified | 10 OCT 2023, 04:40:21 UTC |
Port created | 08 JAN 2023, 04:18:24 UTC |
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) |
Build (only) |
python312:dev:std python-pip:single:v12 autoselect-python:single:std |
Build and Runtime | python312:primary:std |
Runtime (only) |
python-crontab:single:v12 python-rq:single:v12 python-python-dateutil:single:v12 python-freezegun:single:v12 |
main | mirror://PYPIWHL/df/27/27876b5b285552030134494406adb93eceb3d0e1cac6e75d49ff1f16af56 |
python-meraki-netbox-plugin-pdu:v12 | Power Distribution Unit plugin for Netbox (3.12) |