Initial commit: AuroraMusic monorepo
This commit is contained in:
@@ -0,0 +1 @@
|
||||
pip
|
||||
@@ -0,0 +1,177 @@
|
||||
Metadata-Version: 2.1
|
||||
Name: rq
|
||||
Version: 1.16.2
|
||||
Summary: RQ is a simple, lightweight, library for creating background jobs, and processing them.
|
||||
Project-URL: changelog, https://github.com/rq/rq/blob/master/CHANGES.md
|
||||
Project-URL: documentation, https://python-rq.org/docs/
|
||||
Project-URL: homepage, https://python-rq.org/
|
||||
Project-URL: repository, https://github.com/rq/rq/
|
||||
Author-email: Selwin Ong <[email protected]>, Vincent Driessen <[email protected]>
|
||||
Maintainer: Selwin Ong
|
||||
License-Expression: BSD-2-Clause
|
||||
License-File: LICENSE
|
||||
Classifier: Development Status :: 5 - Production/Stable
|
||||
Classifier: Intended Audience :: Developers
|
||||
Classifier: Intended Audience :: End Users/Desktop
|
||||
Classifier: Intended Audience :: Information Technology
|
||||
Classifier: Intended Audience :: Science/Research
|
||||
Classifier: Intended Audience :: System Administrators
|
||||
Classifier: License :: OSI Approved :: BSD License
|
||||
Classifier: Operating System :: MacOS
|
||||
Classifier: Operating System :: POSIX
|
||||
Classifier: Operating System :: Unix
|
||||
Classifier: Programming Language :: Python
|
||||
Classifier: Programming Language :: Python :: 3 :: Only
|
||||
Classifier: Programming Language :: Python :: 3.7
|
||||
Classifier: Programming Language :: Python :: 3.8
|
||||
Classifier: Programming Language :: Python :: 3.9
|
||||
Classifier: Programming Language :: Python :: 3.10
|
||||
Classifier: Programming Language :: Python :: 3.11
|
||||
Classifier: Programming Language :: Python :: 3.12
|
||||
Classifier: Topic :: Internet
|
||||
Classifier: Topic :: Scientific/Engineering
|
||||
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
||||
Classifier: Topic :: System :: Distributed Computing
|
||||
Classifier: Topic :: System :: Monitoring
|
||||
Classifier: Topic :: System :: Systems Administration
|
||||
Requires-Python: >=3.7
|
||||
Requires-Dist: click>=5
|
||||
Requires-Dist: redis>=3.5
|
||||
Description-Content-Type: text/markdown
|
||||
|
||||
RQ (_Redis Queue_) is a simple Python library for queueing jobs and processing
|
||||
them in the background with workers. It is backed by Redis and it is designed
|
||||
to have a low barrier to entry. It should be integrated in your web stack
|
||||
easily.
|
||||
|
||||
RQ requires Redis >= 3.0.0.
|
||||
|
||||
[](https://github.com/rq/rq/actions?query=workflow%3A%22Test+rq%22)
|
||||
[](https://pypi.python.org/pypi/rq)
|
||||
[](https://codecov.io/gh/rq/rq)
|
||||
[](https://github.com/psf/black)
|
||||
|
||||
|
||||
Full documentation can be found [here][d].
|
||||
|
||||
|
||||
## Support RQ
|
||||
|
||||
If you find RQ useful, please consider supporting this project via [Tidelift](https://tidelift.com/subscription/pkg/pypi-rq?utm_source=pypi-rq&utm_medium=referral&utm_campaign=readme).
|
||||
|
||||
|
||||
## Getting started
|
||||
|
||||
First, run a Redis server, of course:
|
||||
|
||||
```console
|
||||
$ redis-server
|
||||
```
|
||||
|
||||
To put jobs on queues, you don't have to do anything special, just define
|
||||
your typically lengthy or blocking function:
|
||||
|
||||
```python
|
||||
import requests
|
||||
|
||||
def count_words_at_url(url):
|
||||
"""Just an example function that's called async."""
|
||||
resp = requests.get(url)
|
||||
return len(resp.text.split())
|
||||
```
|
||||
|
||||
You do use the excellent [requests][r] package, don't you?
|
||||
|
||||
Then, create an RQ queue:
|
||||
|
||||
```python
|
||||
from redis import Redis
|
||||
from rq import Queue
|
||||
|
||||
queue = Queue(connection=Redis())
|
||||
```
|
||||
|
||||
And enqueue the function call:
|
||||
|
||||
```python
|
||||
from my_module import count_words_at_url
|
||||
job = queue.enqueue(count_words_at_url, 'http://nvie.com')
|
||||
```
|
||||
|
||||
Scheduling jobs are also similarly easy:
|
||||
|
||||
```python
|
||||
# Schedule job to run at 9:15, October 10th
|
||||
job = queue.enqueue_at(datetime(2019, 10, 10, 9, 15), say_hello)
|
||||
|
||||
# Schedule job to run in 10 seconds
|
||||
job = queue.enqueue_in(timedelta(seconds=10), say_hello)
|
||||
```
|
||||
|
||||
Retrying failed jobs is also supported:
|
||||
|
||||
```python
|
||||
from rq import Retry
|
||||
|
||||
# Retry up to 3 times, failed job will be requeued immediately
|
||||
queue.enqueue(say_hello, retry=Retry(max=3))
|
||||
|
||||
# Retry up to 3 times, with configurable intervals between retries
|
||||
queue.enqueue(say_hello, retry=Retry(max=3, interval=[10, 30, 60]))
|
||||
```
|
||||
|
||||
For a more complete example, refer to the [docs][d]. But this is the essence.
|
||||
|
||||
|
||||
### The worker
|
||||
|
||||
To start executing enqueued function calls in the background, start a worker
|
||||
from your project's directory:
|
||||
|
||||
```console
|
||||
$ rq worker --with-scheduler
|
||||
*** Listening for work on default
|
||||
Got count_words_at_url('http://nvie.com') from default
|
||||
Job result = 818
|
||||
*** Listening for work on default
|
||||
```
|
||||
|
||||
That's about it.
|
||||
|
||||
|
||||
## Installation
|
||||
|
||||
Simply use the following command to install the latest released version:
|
||||
|
||||
pip install rq
|
||||
|
||||
If you want the cutting edge version (that may well be broken), use this:
|
||||
|
||||
pip install git+https://github.com/rq/rq.git@master#egg=rq
|
||||
|
||||
|
||||
## Related Projects
|
||||
|
||||
Check out these below repos which might be useful in your rq based project.
|
||||
|
||||
- [rq-dashboard](https://github.com/Parallels/rq-dashboard)
|
||||
- [rqmonitor](https://github.com/pranavgupta1234/rqmonitor)
|
||||
- [django-rq](https://github.com/rq/django-rq)
|
||||
- [Flask-RQ2](https://github.com/rq/Flask-RQ2)
|
||||
- [rq-scheduler](https://github.com/rq/rq-scheduler)
|
||||
|
||||
|
||||
## Project history
|
||||
|
||||
This project has been inspired by the good parts of [Celery][1], [Resque][2]
|
||||
and [this snippet][3], and has been created as a lightweight alternative to the
|
||||
heaviness of Celery or other AMQP-based queueing implementations.
|
||||
|
||||
|
||||
[r]: http://python-requests.org
|
||||
[d]: http://python-rq.org/
|
||||
[m]: http://pypi.python.org/pypi/mailer
|
||||
[p]: http://docs.python.org/library/pickle.html
|
||||
[1]: http://docs.celeryq.dev/
|
||||
[2]: https://github.com/resque/resque
|
||||
[3]: https://github.com/fengsp/flask-snippets/blob/1f65833a4291c5b833b195a09c365aa815baea4e/utilities/rq.py
|
||||
@@ -0,0 +1,75 @@
|
||||
../../../bin/rq,sha256=RAadC_fo8cYQJdr_5XwPrKE0VpFPJgX5sYqwShUsb84,201
|
||||
../../../bin/rqinfo,sha256=IuJCsVe9peMTErbP5Lp8Cp66aFryIvOMRq1cKAd09zY,201
|
||||
../../../bin/rqworker,sha256=MsBT9hdRacWszn8Lvby8MA0_x9yNZGgJsg3ZKeVVThU,205
|
||||
rq-1.16.2.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
|
||||
rq-1.16.2.dist-info/METADATA,sha256=EYHp9EMnlh9UTBxr3vz0fcL4eg1Zmapa9RmpC3My0GE,5685
|
||||
rq-1.16.2.dist-info/RECORD,,
|
||||
rq-1.16.2.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
||||
rq-1.16.2.dist-info/WHEEL,sha256=TJPnKdtrSue7xZ_AVGkp9YXcvDrobsjBds1du3Nx6dc,87
|
||||
rq-1.16.2.dist-info/entry_points.txt,sha256=l-JfhigX_Bzkg9SD4CpkBfpM1to8PiUDbVXq6bDnNKQ,81
|
||||
rq-1.16.2.dist-info/licenses/LICENSE,sha256=hGC4rFkhifo4VDsJym6G5KmWOHr4zfeVG3SF_wMozq4,1502
|
||||
rq/__init__.py,sha256=eX_L7fgF0f1dj_FCqp8dcBHHNc_91212x6gssQBQ_kw,549
|
||||
rq/__pycache__/__init__.cpython-312.pyc,,
|
||||
rq/__pycache__/command.cpython-312.pyc,,
|
||||
rq/__pycache__/connections.cpython-312.pyc,,
|
||||
rq/__pycache__/decorators.cpython-312.pyc,,
|
||||
rq/__pycache__/defaults.cpython-312.pyc,,
|
||||
rq/__pycache__/dependency.cpython-312.pyc,,
|
||||
rq/__pycache__/exceptions.cpython-312.pyc,,
|
||||
rq/__pycache__/intermediate_queue.cpython-312.pyc,,
|
||||
rq/__pycache__/job.cpython-312.pyc,,
|
||||
rq/__pycache__/local.cpython-312.pyc,,
|
||||
rq/__pycache__/logutils.cpython-312.pyc,,
|
||||
rq/__pycache__/maintenance.cpython-312.pyc,,
|
||||
rq/__pycache__/queue.cpython-312.pyc,,
|
||||
rq/__pycache__/registry.cpython-312.pyc,,
|
||||
rq/__pycache__/results.cpython-312.pyc,,
|
||||
rq/__pycache__/scheduler.cpython-312.pyc,,
|
||||
rq/__pycache__/serializers.cpython-312.pyc,,
|
||||
rq/__pycache__/suspension.cpython-312.pyc,,
|
||||
rq/__pycache__/timeouts.cpython-312.pyc,,
|
||||
rq/__pycache__/types.cpython-312.pyc,,
|
||||
rq/__pycache__/utils.cpython-312.pyc,,
|
||||
rq/__pycache__/version.cpython-312.pyc,,
|
||||
rq/__pycache__/worker.cpython-312.pyc,,
|
||||
rq/__pycache__/worker_pool.cpython-312.pyc,,
|
||||
rq/__pycache__/worker_registration.cpython-312.pyc,,
|
||||
rq/cli/__init__.py,sha256=xhdBguutcJB3Ww-kAsDXUxmckSG6067rF859L-eotOc,219
|
||||
rq/cli/__main__.py,sha256=xk_tWTBcqbDbXrY-NVigC866WpiK_E6LVL17PPr0V8k,80
|
||||
rq/cli/__pycache__/__init__.cpython-312.pyc,,
|
||||
rq/cli/__pycache__/__main__.cpython-312.pyc,,
|
||||
rq/cli/__pycache__/cli.cpython-312.pyc,,
|
||||
rq/cli/__pycache__/helpers.cpython-312.pyc,,
|
||||
rq/cli/cli.py,sha256=0HfThMv9XGoCDRyn2qpU3sBqF0ll08ssbsD3ihoBR54,18181
|
||||
rq/cli/helpers.py,sha256=Exsa_T0jgGET6nv2px9qpYfAs0WrrpAu_fO_tVMoD3E,14489
|
||||
rq/command.py,sha256=LvikyEe5v2JBX1TXAGCFiKJz0Y0Ou_WFEJcSbsj8ktk,4210
|
||||
rq/connections.py,sha256=PSbSGmC59D5xZ-B-hbTjCP4X0BrSp6q8HXImJ6MLHq8,3719
|
||||
rq/contrib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
||||
rq/contrib/__pycache__/__init__.cpython-312.pyc,,
|
||||
rq/contrib/__pycache__/legacy.cpython-312.pyc,,
|
||||
rq/contrib/__pycache__/sentry.cpython-312.pyc,,
|
||||
rq/contrib/legacy.py,sha256=F2l1z3t-FMf07tLtfY47kpCHS2NSjb4wghGs5Nn3Sr0,933
|
||||
rq/contrib/sentry.py,sha256=npKZWEPIe-PWj2PgNbmD-CjwuoCQcJ1fgB-rA7Y_a3s,332
|
||||
rq/decorators.py,sha256=5dioW1VfClHY_8dF4sMnokt8WukozUuXrNCsPbaMJqU,5095
|
||||
rq/defaults.py,sha256=ebokMoX8YhK4zImr1PMpVDySVSZMPrw_VCbdQHVkBLU,2887
|
||||
rq/dependency.py,sha256=Bknb-xy3GyUCq9OhwmkDKcOaR98tWUDtkV2Np_2KM8E,983
|
||||
rq/exceptions.py,sha256=WQWmkRJHNgXwTGKKr8LQ9lHrc41vTw7GyfBf0Fxh-Gs,538
|
||||
rq/intermediate_queue.py,sha256=sXDFcenZkxy14wAVmxpfQ-pBqan71zFIuijYBDCR4Ig,3842
|
||||
rq/job.py,sha256=OO49s92YkDFKTxQJ9DQrYHw62oPRJs8221Fn4U-2mpM,66702
|
||||
rq/local.py,sha256=CsbfhJFTxp7DSd2NlQGTDi-YvXmGJNhyvmONdOrgdMk,12034
|
||||
rq/logutils.py,sha256=ruxV5a1b6T5I6w7s_NgHwUlag3siBet4M7-0y_jntVk,4994
|
||||
rq/maintenance.py,sha256=25AnFci8n5KqhbtqLe7hnpkSOvchGQcgpMJ6r6cDjSY,941
|
||||
rq/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
||||
rq/queue.py,sha256=TKWT6iKZzhQ8CMK10pCHuj5MKjPwMZdu0EEq4H_564s,55456
|
||||
rq/registry.py,sha256=LwRCpSF3fA5BU2mClX1PPVvrFz5Ls_v6svadPbjIUtM,16889
|
||||
rq/results.py,sha256=qBP5xY8qtOC0jvZFuuW2glR4n3g8gDZTeTDRaDJ_xzI,7253
|
||||
rq/scheduler.py,sha256=scMTy4vKiWINYpMxNLVz1XVt9yLpt86a4ddG-b1TVOI,8169
|
||||
rq/serializers.py,sha256=UyiGwYgBlv6QPCORoL-hcf-WAcwHNpoE93YKRrV80Y8,1540
|
||||
rq/suspension.py,sha256=2mUir1tk-EB_SDSAa2eDKH-lZiCAKmEVl89vRXVNTdc,1337
|
||||
rq/timeouts.py,sha256=PFJtaCzar8a5so-OZEk9ezaNJdyZJ-qKwjdyW0IgUU8,4101
|
||||
rq/types.py,sha256=wLXIK5K6jxxuwGnb0pEcHuBhMOzogsY9hSAsy98jzyQ,657
|
||||
rq/utils.py,sha256=c08f6huYmxtxF9KjzE9Ith3A_qZ6hKKCxHKo-XvaftQ,11054
|
||||
rq/version.py,sha256=5zvyKa4O8NF3AXw9Mq9Can9B7g1Yq88PMMMZk-nBfaI,19
|
||||
rq/worker.py,sha256=V7sjylLkdjJyF_JyvspGQ-FNfnhzp0dCSL4gG-gIcXQ,65486
|
||||
rq/worker_pool.py,sha256=shOvInHH1EhFJOMbOcRC1mJToniw_xV5L2vsHWl2dfc,9910
|
||||
rq/worker_registration.py,sha256=xMJ9Lmbi_shoY83bXAvliwIQEmQbWkOOSFctU5-APds,3116
|
||||
@@ -0,0 +1,4 @@
|
||||
Wheel-Version: 1.0
|
||||
Generator: hatchling 1.21.1
|
||||
Root-Is-Purelib: true
|
||||
Tag: py3-none-any
|
||||
@@ -0,0 +1,4 @@
|
||||
[console_scripts]
|
||||
rq = rq.cli:main
|
||||
rqinfo = rq.cli:info
|
||||
rqworker = rq.cli:worker
|
||||
@@ -0,0 +1,26 @@
|
||||
Copyright 2012 Vincent Driessen. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY VINCENT DRIESSEN ``AS IS'' AND ANY EXPRESS OR
|
||||
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
|
||||
SHALL VINCENT DRIESSEN OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
The views and conclusions contained in the software and documentation are those
|
||||
of the authors and should not be interpreted as representing official policies,
|
||||
either expressed or implied, of Vincent Driessen.
|
||||
Reference in New Issue
Block a user