diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-04-11 13:36:46 +0000 |
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-04-11 13:36:46 +0000 |
| commit | b3d428db397dc0857238084bf6f80cace7bfb739 (patch) | |
| tree | bd09a4499a37fcfcf3f053d09750aa646525451c /python-django-apscheduler.spec | |
| parent | d23a963954f337d8f892cda4fd72941e3adf28e0 (diff) | |
automatic import of python-django-apscheduler
Diffstat (limited to 'python-django-apscheduler.spec')
| -rw-r--r-- | python-django-apscheduler.spec | 185 |
1 files changed, 185 insertions, 0 deletions
diff --git a/python-django-apscheduler.spec b/python-django-apscheduler.spec new file mode 100644 index 0000000..06ffa28 --- /dev/null +++ b/python-django-apscheduler.spec @@ -0,0 +1,185 @@ +%global _empty_manifest_terminate_build 0 +Name: python-django-apscheduler +Version: 0.6.2 +Release: 1 +Summary: APScheduler for Django +License: MIT +URL: http://github.com/jcass77/django-apscheduler +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/37/a2/3815e39c3ec7c83c721d9330380b2afad97b8fee9e83d19b23d4a47235f8/django-apscheduler-0.6.2.tar.gz +BuildArch: noarch + +Requires: python3-django +Requires: python3-apscheduler + +%description +[](https://pypi.org/project/django-apscheduler/) +[](https://pypi.org/project/django-apscheduler/) +[](https://pypi.org/project/django-apscheduler/) +[](https://github.com/jcass77/django-apscheduler/actions?query=workflow%3A%22Python+package%22) +[](https://codecov.io/gh/jcass77/django-apscheduler) +[](https://pypi.org/project/black) +[APScheduler](https://github.com/agronholm/apscheduler) for [Django](https://github.com/django/django). +This is a Django app that adds a lightweight wrapper around APScheduler. It enables storing persistent jobs in the +database using Django's ORM. +django-apscheduler is a great choice for quickly and easily adding basic scheduling features to your Django applications +with minimal dependencies and very little additional configuration. The ideal use case probably involves running a +handful of tasks on a fixed execution schedule. +**PLEASE NOTE:** the trade-off of this simplicity is that you need to **be careful to ensure that you have only ONE +scheduler actively running at a particular point in time**. +This limitation is due to the fact that APScheduler does not currently have +any [interprocess synchronization and signalling scheme](https://apscheduler.readthedocs.io/en/latest/faq.html#how-do-i-share-a-single-job-store-among-one-or-more-worker-processes) +that would enable the scheduler to be notified when a job has been added, modified, or removed from a job store (in +other words, different schedulers won't be able to tell if a job has already been run by another scheduler, and changing +a job's scheduled run time directly in the database does nothing unless you also restart the scheduler). +Depending on how you are currently doing your +Django [deployments](https://docs.djangoproject.com/en/dev/howto/deployment/#deploying-django), working with this +limitation might require a bit of thought. It is quite common to start up many webserver worker process in production +environments in order to scale and handle large volumes of user traffic. If each of these worker processes end up +running their own scheduler then this can result in jobs being missed or executed multiple times, as well as duplicate +entries being created in the `DjangoJobExecution` table. +Support for sharing a persistent job store between multiple schedulers appears to be planned for +an [upcoming APScheduler 4.0 release](https://github.com/agronholm/apscheduler/issues/465). +So for now your options are to either: +1. Use a custom Django management command to start a single scheduler in its own dedicated process (**recommended** - + see the `runapscheduler.py` example below); or +2. Implement your + own [remote processing](https://apscheduler.readthedocs.io/en/latest/faq.html#how-do-i-share-a-single-job-store-among-one-or-more-worker-processes) + logic to ensure that a single `DjangoJobStore` can be used by all of the webserver's worker processes in a + coordinated and synchronized way (might not be worth the extra effort and increased complexity for most use cases); + or +3. Select an alternative task processing library that *does* support inter-process communication using some sort of + shared message broker like Redis, RabbitMQ, Amazon SQS or the like (see: + https://djangopackages.org/grids/g/workers-queues-tasks/ for popular options). + +%package -n python3-django-apscheduler +Summary: APScheduler for Django +Provides: python-django-apscheduler +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-django-apscheduler +[](https://pypi.org/project/django-apscheduler/) +[](https://pypi.org/project/django-apscheduler/) +[](https://pypi.org/project/django-apscheduler/) +[](https://github.com/jcass77/django-apscheduler/actions?query=workflow%3A%22Python+package%22) +[](https://codecov.io/gh/jcass77/django-apscheduler) +[](https://pypi.org/project/black) +[APScheduler](https://github.com/agronholm/apscheduler) for [Django](https://github.com/django/django). +This is a Django app that adds a lightweight wrapper around APScheduler. It enables storing persistent jobs in the +database using Django's ORM. +django-apscheduler is a great choice for quickly and easily adding basic scheduling features to your Django applications +with minimal dependencies and very little additional configuration. The ideal use case probably involves running a +handful of tasks on a fixed execution schedule. +**PLEASE NOTE:** the trade-off of this simplicity is that you need to **be careful to ensure that you have only ONE +scheduler actively running at a particular point in time**. +This limitation is due to the fact that APScheduler does not currently have +any [interprocess synchronization and signalling scheme](https://apscheduler.readthedocs.io/en/latest/faq.html#how-do-i-share-a-single-job-store-among-one-or-more-worker-processes) +that would enable the scheduler to be notified when a job has been added, modified, or removed from a job store (in +other words, different schedulers won't be able to tell if a job has already been run by another scheduler, and changing +a job's scheduled run time directly in the database does nothing unless you also restart the scheduler). +Depending on how you are currently doing your +Django [deployments](https://docs.djangoproject.com/en/dev/howto/deployment/#deploying-django), working with this +limitation might require a bit of thought. It is quite common to start up many webserver worker process in production +environments in order to scale and handle large volumes of user traffic. If each of these worker processes end up +running their own scheduler then this can result in jobs being missed or executed multiple times, as well as duplicate +entries being created in the `DjangoJobExecution` table. +Support for sharing a persistent job store between multiple schedulers appears to be planned for +an [upcoming APScheduler 4.0 release](https://github.com/agronholm/apscheduler/issues/465). +So for now your options are to either: +1. Use a custom Django management command to start a single scheduler in its own dedicated process (**recommended** - + see the `runapscheduler.py` example below); or +2. Implement your + own [remote processing](https://apscheduler.readthedocs.io/en/latest/faq.html#how-do-i-share-a-single-job-store-among-one-or-more-worker-processes) + logic to ensure that a single `DjangoJobStore` can be used by all of the webserver's worker processes in a + coordinated and synchronized way (might not be worth the extra effort and increased complexity for most use cases); + or +3. Select an alternative task processing library that *does* support inter-process communication using some sort of + shared message broker like Redis, RabbitMQ, Amazon SQS or the like (see: + https://djangopackages.org/grids/g/workers-queues-tasks/ for popular options). + +%package help +Summary: Development documents and examples for django-apscheduler +Provides: python3-django-apscheduler-doc +%description help +[](https://pypi.org/project/django-apscheduler/) +[](https://pypi.org/project/django-apscheduler/) +[](https://pypi.org/project/django-apscheduler/) +[](https://github.com/jcass77/django-apscheduler/actions?query=workflow%3A%22Python+package%22) +[](https://codecov.io/gh/jcass77/django-apscheduler) +[](https://pypi.org/project/black) +[APScheduler](https://github.com/agronholm/apscheduler) for [Django](https://github.com/django/django). +This is a Django app that adds a lightweight wrapper around APScheduler. It enables storing persistent jobs in the +database using Django's ORM. +django-apscheduler is a great choice for quickly and easily adding basic scheduling features to your Django applications +with minimal dependencies and very little additional configuration. The ideal use case probably involves running a +handful of tasks on a fixed execution schedule. +**PLEASE NOTE:** the trade-off of this simplicity is that you need to **be careful to ensure that you have only ONE +scheduler actively running at a particular point in time**. +This limitation is due to the fact that APScheduler does not currently have +any [interprocess synchronization and signalling scheme](https://apscheduler.readthedocs.io/en/latest/faq.html#how-do-i-share-a-single-job-store-among-one-or-more-worker-processes) +that would enable the scheduler to be notified when a job has been added, modified, or removed from a job store (in +other words, different schedulers won't be able to tell if a job has already been run by another scheduler, and changing +a job's scheduled run time directly in the database does nothing unless you also restart the scheduler). +Depending on how you are currently doing your +Django [deployments](https://docs.djangoproject.com/en/dev/howto/deployment/#deploying-django), working with this +limitation might require a bit of thought. It is quite common to start up many webserver worker process in production +environments in order to scale and handle large volumes of user traffic. If each of these worker processes end up +running their own scheduler then this can result in jobs being missed or executed multiple times, as well as duplicate +entries being created in the `DjangoJobExecution` table. +Support for sharing a persistent job store between multiple schedulers appears to be planned for +an [upcoming APScheduler 4.0 release](https://github.com/agronholm/apscheduler/issues/465). +So for now your options are to either: +1. Use a custom Django management command to start a single scheduler in its own dedicated process (**recommended** - + see the `runapscheduler.py` example below); or +2. Implement your + own [remote processing](https://apscheduler.readthedocs.io/en/latest/faq.html#how-do-i-share-a-single-job-store-among-one-or-more-worker-processes) + logic to ensure that a single `DjangoJobStore` can be used by all of the webserver's worker processes in a + coordinated and synchronized way (might not be worth the extra effort and increased complexity for most use cases); + or +3. Select an alternative task processing library that *does* support inter-process communication using some sort of + shared message broker like Redis, RabbitMQ, Amazon SQS or the like (see: + https://djangopackages.org/grids/g/workers-queues-tasks/ for popular options). + +%prep +%autosetup -n django-apscheduler-0.6.2 + +%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-apscheduler -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 0.6.2-1 +- Package Spec generated |
