summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-04-10 22:55:09 +0000
committerCoprDistGit <infra@openeuler.org>2023-04-10 22:55:09 +0000
commit795a6a5e7c7d1bf668f982e759f5e0e2672a2354 (patch)
tree606ed5fd7042d97a64090bbfa6fabd1728da971c
parent4c28159e897df9a620d70f0487d7226d633bc54b (diff)
automatic import of python-django-q
-rw-r--r--.gitignore1
-rw-r--r--python-django-q.spec578
-rw-r--r--sources1
3 files changed, 580 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..29d4ffc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/django-q-1.3.9.tar.gz
diff --git a/python-django-q.spec b/python-django-q.spec
new file mode 100644
index 0000000..188c7cd
--- /dev/null
+++ b/python-django-q.spec
@@ -0,0 +1,578 @@
+%global _empty_manifest_terminate_build 0
+Name: python-django-q
+Version: 1.3.9
+Release: 1
+Summary: A multiprocessing distributed task queue for Django
+License: MIT
+URL: https://django-q.readthedocs.org
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/3f/49/d54c6631bce6fea588ad31cd4f1b7538a4f5e6e7b85a5187c5de72c9fa75/django-q-1.3.9.tar.gz
+BuildArch: noarch
+
+Requires: python3-django
+Requires: python3-blessed
+Requires: python3-arrow
+Requires: python3-django-picklefield
+Requires: python3-hiredis
+Requires: python3-redis
+Requires: python3-psutil
+Requires: python3-django-redis
+Requires: python3-iron-mq
+Requires: python3-boto3
+Requires: python3-pymongo
+Requires: python3-croniter
+Requires: python3-django-q-rollbar
+Requires: python3-django-q-sentry
+
+%description
+|image0| |image1| |docs| |image2|
+Features
+~~~~~~~~
+- Multiprocessing worker pool
+- Asynchronous tasks
+- Scheduled, cron and repeated tasks
+- Signed and compressed packages
+- Failure and success database or cache
+- Result hooks, groups and chains
+- Django Admin integration
+- PaaS compatible with multiple instances
+- Multi cluster monitor
+- Redis, Disque, IronMQ, SQS, MongoDB or ORM
+- Rollbar and Sentry support
+Requirements
+~~~~~~~~~~~~
+- `Django <https://www.djangoproject.com>`__ > = 2.2
+- `Django-picklefield <https://github.com/gintas/django-picklefield>`__
+- `Arrow <https://github.com/crsmithdev/arrow>`__
+- `Blessed <https://github.com/jquast/blessed>`__
+Tested with: Python 3.7, 3.8, 3.9 Django 2.2.X and 3.2.X
+Brokers
+~~~~~~~
+- `Redis <https://django-q.readthedocs.org/en/latest/brokers.html#redis>`__
+- `Disque <https://django-q.readthedocs.org/en/latest/brokers.html#disque>`__
+- `IronMQ <https://django-q.readthedocs.org/en/latest/brokers.html#ironmq>`__
+- `Amazon SQS <https://django-q.readthedocs.org/en/latest/brokers.html#amazon-sqs>`__
+- `MongoDB <https://django-q.readthedocs.org/en/latest/brokers.html#mongodb>`__
+- `Django ORM <https://django-q.readthedocs.org/en/latest/brokers.html#django-orm>`__
+Installation
+~~~~~~~~~~~~
+- Install the latest version with pip::
+ $ pip install django-q
+- Add `django_q` to your `INSTALLED_APPS` in your projects `settings.py`::
+ INSTALLED_APPS = (
+ # other apps
+ 'django_q',
+ )
+- Run Django migrations to create the database tables::
+ $ python manage.py migrate
+- Choose a message `broker <https://django-q.readthedocs.org/en/latest/brokers.html>`__ , configure and install the appropriate client library.
+Read the full documentation at `https://django-q.readthedocs.org <https://django-q.readthedocs.org>`__
+Configuration
+~~~~~~~~~~~~~
+All configuration settings are optional. e.g:
+ # settings.py example
+ Q_CLUSTER = {
+ 'name': 'myproject',
+ 'workers': 8,
+ 'recycle': 500,
+ 'timeout': 60,
+ 'compress': True,
+ 'cpu_affinity': 1,
+ 'save_limit': 250,
+ 'queue_limit': 500,
+ 'label': 'Django Q',
+ 'redis': {
+ 'host': '127.0.0.1',
+ 'port': 6379,
+ 'db': 0, }
+ }
+For full configuration options, see the `configuration documentation <https://django-q.readthedocs.org/en/latest/configure.html>`__.
+Management Commands
+~~~~~~~~~~~~~~~~~~~
+Start a cluster with::
+ $ python manage.py qcluster
+Monitor your clusters with::
+ $ python manage.py qmonitor
+Monitor your clusters' memory usage with::
+ $ python manage.py qmemory
+Check overall statistics with::
+ $ python manage.py qinfo
+Creating Tasks
+~~~~~~~~~~~~~~
+Use `async_task` from your code to quickly offload tasks:
+ from django_q.tasks import async_task, result
+ # create the task
+ async_task('math.copysign', 2, -2)
+ # or with a reference
+ import math.copysign
+ task_id = async_task(copysign, 2, -2)
+ # get the result
+ task_result = result(task_id)
+ # result returns None if the task has not been executed yet
+ # you can wait for it
+ task_result = result(task_id, 200)
+ # but in most cases you will want to use a hook:
+ async_task('math.modf', 2.5, hook='hooks.print_result')
+ # hooks.py
+ def print_result(task):
+ print(task.result)
+For more info see `Tasks <https://django-q.readthedocs.org/en/latest/tasks.html>`__
+Schedule
+~~~~~~~~
+Schedules are regular Django models. You can manage them through the
+Admin page or directly from your code:
+ # Use the schedule function
+ from django_q.tasks import schedule
+ schedule('math.copysign',
+ 2, -2,
+ hook='hooks.print_result',
+ schedule_type=Schedule.DAILY)
+ # Or create the object directly
+ from django_q.models import Schedule
+ Schedule.objects.create(func='math.copysign',
+ hook='hooks.print_result',
+ args='2,-2',
+ schedule_type=Schedule.DAILY
+ )
+ # Run a task every 5 minutes, starting at 6 today
+ # for 2 hours
+ import arrow
+ schedule('math.hypot',
+ 3, 4,
+ schedule_type=Schedule.MINUTES,
+ minutes=5,
+ repeats=24,
+ next_run=arrow.utcnow().replace(hour=18, minute=0))
+ # Use a cron expression
+ schedule('math.hypot',
+ 3, 4,
+ schedule_type=Schedule.CRON,
+ cron = '0 22 * * 1-5')
+For more info check the `Schedules <https://django-q.readthedocs.org/en/latest/schedules.html>`__ documentation.
+Testing
+~~~~~~~
+To run the tests you will need the following in addition to install requirements:
+* `py.test <http://pytest.org/latest/>`__
+* `pytest-django <https://github.com/pytest-dev/pytest-django>`__
+* Disque from https://github.com/antirez/disque.git
+* Redis
+* MongoDB
+Or you can use the included Docker Compose file.
+The following commands can be used to run the tests:
+ # Create virtual environment
+ python -m venv venv
+ # Install requirements
+ venv/bin/pip install -r requirements.txt
+ # Install test dependencies
+ venv/bin/pip install pytest pytest-django
+ # Install django-q
+ venv/bin/python setup.py develop
+ # Run required services (you need to have docker-compose installed)
+ docker-compose -f test-services-docker-compose.yaml up -d
+ # Run tests
+ venv/bin/pytest
+ # Stop the services required by tests (when you no longer plan to run tests)
+ docker-compose -f test-services-docker-compose.yaml down
+Locale
+~~~~~~
+Currently available in English, German and French.
+Translation pull requests are always welcome.
+Todo
+~~~~
+- Better tests and coverage
+- Less dependencies?
+Acknowledgements
+~~~~~~~~~~~~~~~~
+- Django Q was inspired by working with
+ `Django-RQ <https://github.com/ui/django-rq>`__ and
+ `RQ <https://github.com/ui/django-rq>`__
+- Human readable hashes by
+ `HumanHash <https://github.com/zacharyvoase/humanhash>`__
+- Redditors feedback at `r/django <https://www.reddit.com/r/django/>`__
+- JetBrains for their `Open Source Support Program <https://www.jetbrains.com/community/opensource>`__
+
+%package -n python3-django-q
+Summary: A multiprocessing distributed task queue for Django
+Provides: python-django-q
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-django-q
+|image0| |image1| |docs| |image2|
+Features
+~~~~~~~~
+- Multiprocessing worker pool
+- Asynchronous tasks
+- Scheduled, cron and repeated tasks
+- Signed and compressed packages
+- Failure and success database or cache
+- Result hooks, groups and chains
+- Django Admin integration
+- PaaS compatible with multiple instances
+- Multi cluster monitor
+- Redis, Disque, IronMQ, SQS, MongoDB or ORM
+- Rollbar and Sentry support
+Requirements
+~~~~~~~~~~~~
+- `Django <https://www.djangoproject.com>`__ > = 2.2
+- `Django-picklefield <https://github.com/gintas/django-picklefield>`__
+- `Arrow <https://github.com/crsmithdev/arrow>`__
+- `Blessed <https://github.com/jquast/blessed>`__
+Tested with: Python 3.7, 3.8, 3.9 Django 2.2.X and 3.2.X
+Brokers
+~~~~~~~
+- `Redis <https://django-q.readthedocs.org/en/latest/brokers.html#redis>`__
+- `Disque <https://django-q.readthedocs.org/en/latest/brokers.html#disque>`__
+- `IronMQ <https://django-q.readthedocs.org/en/latest/brokers.html#ironmq>`__
+- `Amazon SQS <https://django-q.readthedocs.org/en/latest/brokers.html#amazon-sqs>`__
+- `MongoDB <https://django-q.readthedocs.org/en/latest/brokers.html#mongodb>`__
+- `Django ORM <https://django-q.readthedocs.org/en/latest/brokers.html#django-orm>`__
+Installation
+~~~~~~~~~~~~
+- Install the latest version with pip::
+ $ pip install django-q
+- Add `django_q` to your `INSTALLED_APPS` in your projects `settings.py`::
+ INSTALLED_APPS = (
+ # other apps
+ 'django_q',
+ )
+- Run Django migrations to create the database tables::
+ $ python manage.py migrate
+- Choose a message `broker <https://django-q.readthedocs.org/en/latest/brokers.html>`__ , configure and install the appropriate client library.
+Read the full documentation at `https://django-q.readthedocs.org <https://django-q.readthedocs.org>`__
+Configuration
+~~~~~~~~~~~~~
+All configuration settings are optional. e.g:
+ # settings.py example
+ Q_CLUSTER = {
+ 'name': 'myproject',
+ 'workers': 8,
+ 'recycle': 500,
+ 'timeout': 60,
+ 'compress': True,
+ 'cpu_affinity': 1,
+ 'save_limit': 250,
+ 'queue_limit': 500,
+ 'label': 'Django Q',
+ 'redis': {
+ 'host': '127.0.0.1',
+ 'port': 6379,
+ 'db': 0, }
+ }
+For full configuration options, see the `configuration documentation <https://django-q.readthedocs.org/en/latest/configure.html>`__.
+Management Commands
+~~~~~~~~~~~~~~~~~~~
+Start a cluster with::
+ $ python manage.py qcluster
+Monitor your clusters with::
+ $ python manage.py qmonitor
+Monitor your clusters' memory usage with::
+ $ python manage.py qmemory
+Check overall statistics with::
+ $ python manage.py qinfo
+Creating Tasks
+~~~~~~~~~~~~~~
+Use `async_task` from your code to quickly offload tasks:
+ from django_q.tasks import async_task, result
+ # create the task
+ async_task('math.copysign', 2, -2)
+ # or with a reference
+ import math.copysign
+ task_id = async_task(copysign, 2, -2)
+ # get the result
+ task_result = result(task_id)
+ # result returns None if the task has not been executed yet
+ # you can wait for it
+ task_result = result(task_id, 200)
+ # but in most cases you will want to use a hook:
+ async_task('math.modf', 2.5, hook='hooks.print_result')
+ # hooks.py
+ def print_result(task):
+ print(task.result)
+For more info see `Tasks <https://django-q.readthedocs.org/en/latest/tasks.html>`__
+Schedule
+~~~~~~~~
+Schedules are regular Django models. You can manage them through the
+Admin page or directly from your code:
+ # Use the schedule function
+ from django_q.tasks import schedule
+ schedule('math.copysign',
+ 2, -2,
+ hook='hooks.print_result',
+ schedule_type=Schedule.DAILY)
+ # Or create the object directly
+ from django_q.models import Schedule
+ Schedule.objects.create(func='math.copysign',
+ hook='hooks.print_result',
+ args='2,-2',
+ schedule_type=Schedule.DAILY
+ )
+ # Run a task every 5 minutes, starting at 6 today
+ # for 2 hours
+ import arrow
+ schedule('math.hypot',
+ 3, 4,
+ schedule_type=Schedule.MINUTES,
+ minutes=5,
+ repeats=24,
+ next_run=arrow.utcnow().replace(hour=18, minute=0))
+ # Use a cron expression
+ schedule('math.hypot',
+ 3, 4,
+ schedule_type=Schedule.CRON,
+ cron = '0 22 * * 1-5')
+For more info check the `Schedules <https://django-q.readthedocs.org/en/latest/schedules.html>`__ documentation.
+Testing
+~~~~~~~
+To run the tests you will need the following in addition to install requirements:
+* `py.test <http://pytest.org/latest/>`__
+* `pytest-django <https://github.com/pytest-dev/pytest-django>`__
+* Disque from https://github.com/antirez/disque.git
+* Redis
+* MongoDB
+Or you can use the included Docker Compose file.
+The following commands can be used to run the tests:
+ # Create virtual environment
+ python -m venv venv
+ # Install requirements
+ venv/bin/pip install -r requirements.txt
+ # Install test dependencies
+ venv/bin/pip install pytest pytest-django
+ # Install django-q
+ venv/bin/python setup.py develop
+ # Run required services (you need to have docker-compose installed)
+ docker-compose -f test-services-docker-compose.yaml up -d
+ # Run tests
+ venv/bin/pytest
+ # Stop the services required by tests (when you no longer plan to run tests)
+ docker-compose -f test-services-docker-compose.yaml down
+Locale
+~~~~~~
+Currently available in English, German and French.
+Translation pull requests are always welcome.
+Todo
+~~~~
+- Better tests and coverage
+- Less dependencies?
+Acknowledgements
+~~~~~~~~~~~~~~~~
+- Django Q was inspired by working with
+ `Django-RQ <https://github.com/ui/django-rq>`__ and
+ `RQ <https://github.com/ui/django-rq>`__
+- Human readable hashes by
+ `HumanHash <https://github.com/zacharyvoase/humanhash>`__
+- Redditors feedback at `r/django <https://www.reddit.com/r/django/>`__
+- JetBrains for their `Open Source Support Program <https://www.jetbrains.com/community/opensource>`__
+
+%package help
+Summary: Development documents and examples for django-q
+Provides: python3-django-q-doc
+%description help
+|image0| |image1| |docs| |image2|
+Features
+~~~~~~~~
+- Multiprocessing worker pool
+- Asynchronous tasks
+- Scheduled, cron and repeated tasks
+- Signed and compressed packages
+- Failure and success database or cache
+- Result hooks, groups and chains
+- Django Admin integration
+- PaaS compatible with multiple instances
+- Multi cluster monitor
+- Redis, Disque, IronMQ, SQS, MongoDB or ORM
+- Rollbar and Sentry support
+Requirements
+~~~~~~~~~~~~
+- `Django <https://www.djangoproject.com>`__ > = 2.2
+- `Django-picklefield <https://github.com/gintas/django-picklefield>`__
+- `Arrow <https://github.com/crsmithdev/arrow>`__
+- `Blessed <https://github.com/jquast/blessed>`__
+Tested with: Python 3.7, 3.8, 3.9 Django 2.2.X and 3.2.X
+Brokers
+~~~~~~~
+- `Redis <https://django-q.readthedocs.org/en/latest/brokers.html#redis>`__
+- `Disque <https://django-q.readthedocs.org/en/latest/brokers.html#disque>`__
+- `IronMQ <https://django-q.readthedocs.org/en/latest/brokers.html#ironmq>`__
+- `Amazon SQS <https://django-q.readthedocs.org/en/latest/brokers.html#amazon-sqs>`__
+- `MongoDB <https://django-q.readthedocs.org/en/latest/brokers.html#mongodb>`__
+- `Django ORM <https://django-q.readthedocs.org/en/latest/brokers.html#django-orm>`__
+Installation
+~~~~~~~~~~~~
+- Install the latest version with pip::
+ $ pip install django-q
+- Add `django_q` to your `INSTALLED_APPS` in your projects `settings.py`::
+ INSTALLED_APPS = (
+ # other apps
+ 'django_q',
+ )
+- Run Django migrations to create the database tables::
+ $ python manage.py migrate
+- Choose a message `broker <https://django-q.readthedocs.org/en/latest/brokers.html>`__ , configure and install the appropriate client library.
+Read the full documentation at `https://django-q.readthedocs.org <https://django-q.readthedocs.org>`__
+Configuration
+~~~~~~~~~~~~~
+All configuration settings are optional. e.g:
+ # settings.py example
+ Q_CLUSTER = {
+ 'name': 'myproject',
+ 'workers': 8,
+ 'recycle': 500,
+ 'timeout': 60,
+ 'compress': True,
+ 'cpu_affinity': 1,
+ 'save_limit': 250,
+ 'queue_limit': 500,
+ 'label': 'Django Q',
+ 'redis': {
+ 'host': '127.0.0.1',
+ 'port': 6379,
+ 'db': 0, }
+ }
+For full configuration options, see the `configuration documentation <https://django-q.readthedocs.org/en/latest/configure.html>`__.
+Management Commands
+~~~~~~~~~~~~~~~~~~~
+Start a cluster with::
+ $ python manage.py qcluster
+Monitor your clusters with::
+ $ python manage.py qmonitor
+Monitor your clusters' memory usage with::
+ $ python manage.py qmemory
+Check overall statistics with::
+ $ python manage.py qinfo
+Creating Tasks
+~~~~~~~~~~~~~~
+Use `async_task` from your code to quickly offload tasks:
+ from django_q.tasks import async_task, result
+ # create the task
+ async_task('math.copysign', 2, -2)
+ # or with a reference
+ import math.copysign
+ task_id = async_task(copysign, 2, -2)
+ # get the result
+ task_result = result(task_id)
+ # result returns None if the task has not been executed yet
+ # you can wait for it
+ task_result = result(task_id, 200)
+ # but in most cases you will want to use a hook:
+ async_task('math.modf', 2.5, hook='hooks.print_result')
+ # hooks.py
+ def print_result(task):
+ print(task.result)
+For more info see `Tasks <https://django-q.readthedocs.org/en/latest/tasks.html>`__
+Schedule
+~~~~~~~~
+Schedules are regular Django models. You can manage them through the
+Admin page or directly from your code:
+ # Use the schedule function
+ from django_q.tasks import schedule
+ schedule('math.copysign',
+ 2, -2,
+ hook='hooks.print_result',
+ schedule_type=Schedule.DAILY)
+ # Or create the object directly
+ from django_q.models import Schedule
+ Schedule.objects.create(func='math.copysign',
+ hook='hooks.print_result',
+ args='2,-2',
+ schedule_type=Schedule.DAILY
+ )
+ # Run a task every 5 minutes, starting at 6 today
+ # for 2 hours
+ import arrow
+ schedule('math.hypot',
+ 3, 4,
+ schedule_type=Schedule.MINUTES,
+ minutes=5,
+ repeats=24,
+ next_run=arrow.utcnow().replace(hour=18, minute=0))
+ # Use a cron expression
+ schedule('math.hypot',
+ 3, 4,
+ schedule_type=Schedule.CRON,
+ cron = '0 22 * * 1-5')
+For more info check the `Schedules <https://django-q.readthedocs.org/en/latest/schedules.html>`__ documentation.
+Testing
+~~~~~~~
+To run the tests you will need the following in addition to install requirements:
+* `py.test <http://pytest.org/latest/>`__
+* `pytest-django <https://github.com/pytest-dev/pytest-django>`__
+* Disque from https://github.com/antirez/disque.git
+* Redis
+* MongoDB
+Or you can use the included Docker Compose file.
+The following commands can be used to run the tests:
+ # Create virtual environment
+ python -m venv venv
+ # Install requirements
+ venv/bin/pip install -r requirements.txt
+ # Install test dependencies
+ venv/bin/pip install pytest pytest-django
+ # Install django-q
+ venv/bin/python setup.py develop
+ # Run required services (you need to have docker-compose installed)
+ docker-compose -f test-services-docker-compose.yaml up -d
+ # Run tests
+ venv/bin/pytest
+ # Stop the services required by tests (when you no longer plan to run tests)
+ docker-compose -f test-services-docker-compose.yaml down
+Locale
+~~~~~~
+Currently available in English, German and French.
+Translation pull requests are always welcome.
+Todo
+~~~~
+- Better tests and coverage
+- Less dependencies?
+Acknowledgements
+~~~~~~~~~~~~~~~~
+- Django Q was inspired by working with
+ `Django-RQ <https://github.com/ui/django-rq>`__ and
+ `RQ <https://github.com/ui/django-rq>`__
+- Human readable hashes by
+ `HumanHash <https://github.com/zacharyvoase/humanhash>`__
+- Redditors feedback at `r/django <https://www.reddit.com/r/django/>`__
+- JetBrains for their `Open Source Support Program <https://www.jetbrains.com/community/opensource>`__
+
+%prep
+%autosetup -n django-q-1.3.9
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-django-q -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Mon Apr 10 2023 Python_Bot <Python_Bot@openeuler.org> - 1.3.9-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..c5d86ad
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+75def6d4d98612e4fc1245c18a82e65a django-q-1.3.9.tar.gz