From 87b6180142d90aca51748600aaf8415e0d331107 Mon Sep 17 00:00:00 2001 From: Keyvan Mosharraf Date: Thu, 30 May 2019 03:28:57 -0700 Subject: [PATCH 1/5] Use DatabaseScheduler for celery beat --- .../compose/local/django/celery/beat/start | 2 +- .../compose/production/django/celery/beat/start | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/{{cookiecutter.project_slug}}/compose/local/django/celery/beat/start b/{{cookiecutter.project_slug}}/compose/local/django/celery/beat/start index 389e2baf..f954960f 100644 --- a/{{cookiecutter.project_slug}}/compose/local/django/celery/beat/start +++ b/{{cookiecutter.project_slug}}/compose/local/django/celery/beat/start @@ -5,4 +5,4 @@ set -o nounset rm -f './celerybeat.pid' -celery -A config.celery_app beat -l INFO +celery -A config.celery_app beat -l INFO --scheduler django_celery_beat.schedulers:DatabaseScheduler diff --git a/{{cookiecutter.project_slug}}/compose/production/django/celery/beat/start b/{{cookiecutter.project_slug}}/compose/production/django/celery/beat/start index 0e793e38..a549c6b2 100644 --- a/{{cookiecutter.project_slug}}/compose/production/django/celery/beat/start +++ b/{{cookiecutter.project_slug}}/compose/production/django/celery/beat/start @@ -5,4 +5,4 @@ set -o pipefail set -o nounset -celery -A config.celery_app beat -l INFO +celery -A config.celery_app beat -l INFO --scheduler django_celery_beat.schedulers:DatabaseScheduler From 915848e279fcbb64f7419018c5c571594fd867eb Mon Sep 17 00:00:00 2001 From: Keyvan Mosharraf Date: Thu, 30 May 2019 03:34:57 -0700 Subject: [PATCH 2/5] Add name to CONTRIBUTORS.rst --- CONTRIBUTORS.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CONTRIBUTORS.rst b/CONTRIBUTORS.rst index 7a9dbf79..6f6d4c32 100644 --- a/CONTRIBUTORS.rst +++ b/CONTRIBUTORS.rst @@ -191,6 +191,7 @@ Listed in alphabetical order. Will Farley `@goldhand`_ @g01dhand William Archinal `@archinal`_ Yaroslav Halchenko + Keyvan Mosharraf `@keyvanm`_ ========================== ============================ ============== .. _@a7p: https://github.com/a7p @@ -325,6 +326,7 @@ Listed in alphabetical order. .. _@vladdoster: https://github.com/vladdoster .. _@cmargieson: https://github.com/cmargieson .. _@tanoabeleyra: https://github.com/tanoabeleyra +.. _@keyvanm: https://github.com/keyvanm Special Thanks ~~~~~~~~~~~~~~ From 631bddc8114861cdafc2af56ff109b176599ea57 Mon Sep 17 00:00:00 2001 From: Keyvan Mosharraf Date: Thu, 30 May 2019 16:42:19 -0700 Subject: [PATCH 3/5] Set celery beat scheduler using settings + install django_celery_beat if use_celery --- .../compose/local/django/celery/beat/start | 2 +- .../compose/production/django/celery/beat/start | 2 +- {{cookiecutter.project_slug}}/config/settings/base.py | 5 +++++ {{cookiecutter.project_slug}}/requirements/base.txt | 1 + 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/{{cookiecutter.project_slug}}/compose/local/django/celery/beat/start b/{{cookiecutter.project_slug}}/compose/local/django/celery/beat/start index f954960f..389e2baf 100644 --- a/{{cookiecutter.project_slug}}/compose/local/django/celery/beat/start +++ b/{{cookiecutter.project_slug}}/compose/local/django/celery/beat/start @@ -5,4 +5,4 @@ set -o nounset rm -f './celerybeat.pid' -celery -A config.celery_app beat -l INFO --scheduler django_celery_beat.schedulers:DatabaseScheduler +celery -A config.celery_app beat -l INFO diff --git a/{{cookiecutter.project_slug}}/compose/production/django/celery/beat/start b/{{cookiecutter.project_slug}}/compose/production/django/celery/beat/start index a549c6b2..0e793e38 100644 --- a/{{cookiecutter.project_slug}}/compose/production/django/celery/beat/start +++ b/{{cookiecutter.project_slug}}/compose/production/django/celery/beat/start @@ -5,4 +5,4 @@ set -o pipefail set -o nounset -celery -A config.celery_app beat -l INFO --scheduler django_celery_beat.schedulers:DatabaseScheduler +celery -A config.celery_app beat -l INFO diff --git a/{{cookiecutter.project_slug}}/config/settings/base.py b/{{cookiecutter.project_slug}}/config/settings/base.py index 4a522fdd..5f489389 100644 --- a/{{cookiecutter.project_slug}}/config/settings/base.py +++ b/{{cookiecutter.project_slug}}/config/settings/base.py @@ -75,6 +75,9 @@ THIRD_PARTY_APPS = [ "allauth.account", "allauth.socialaccount", "rest_framework", +{% if cookiecutter.use_celery == 'y' -%} + "django_celery_beat", +{%- endif %} ] LOCAL_APPS = [ "{{ cookiecutter.project_slug }}.users.apps.UsersConfig", @@ -270,6 +273,8 @@ CELERY_TASK_TIME_LIMIT = 5 * 60 # http://docs.celeryproject.org/en/latest/userguide/configuration.html#task-soft-time-limit # TODO: set to whatever value is adequate in your circumstances CELERY_TASK_SOFT_TIME_LIMIT = 60 +# http://docs.celeryproject.org/en/latest/userguide/configuration.html#beat-scheduler +CELERY_BEAT_SCHEDULER = "django_celery_beat.schedulers:DatabaseScheduler" {%- endif %} # django-allauth diff --git a/{{cookiecutter.project_slug}}/requirements/base.txt b/{{cookiecutter.project_slug}}/requirements/base.txt index ddd8f041..2ec5fdf4 100644 --- a/{{cookiecutter.project_slug}}/requirements/base.txt +++ b/{{cookiecutter.project_slug}}/requirements/base.txt @@ -11,6 +11,7 @@ whitenoise==4.1.2 # https://github.com/evansd/whitenoise redis==3.2.1 # https://github.com/antirez/redis {%- if cookiecutter.use_celery == "y" %} celery==4.3.0 # pyup: < 5.0 # https://github.com/celery/celery +django-celery-beat==1.5.0 # https://github.com/celery/django-celery-beat {%- if cookiecutter.use_docker == 'y' %} flower==0.9.3 # https://github.com/mher/flower {%- endif %} From aee9f3ecfa8df143d2a5036098d1e701b15f4213 Mon Sep 17 00:00:00 2001 From: Keyvan Mosharraf Date: Thu, 30 May 2019 16:59:58 -0700 Subject: [PATCH 4/5] Install django_celery_beat in the proper way --- {{cookiecutter.project_slug}}/config/settings/base.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/{{cookiecutter.project_slug}}/config/settings/base.py b/{{cookiecutter.project_slug}}/config/settings/base.py index 5f489389..94fd384f 100644 --- a/{{cookiecutter.project_slug}}/config/settings/base.py +++ b/{{cookiecutter.project_slug}}/config/settings/base.py @@ -75,10 +75,12 @@ THIRD_PARTY_APPS = [ "allauth.account", "allauth.socialaccount", "rest_framework", -{% if cookiecutter.use_celery == 'y' -%} - "django_celery_beat", -{%- endif %} ] +# http://docs.celeryproject.org/en/latest/userguide/periodic-tasks.html#using-custom-scheduler-classes +{% if cookiecutter.use_celery == 'y' -%} +THIRD_PARTY_APPS += ["django_celery_beat"] +{%- endif %} + LOCAL_APPS = [ "{{ cookiecutter.project_slug }}.users.apps.UsersConfig", # Your stuff: custom apps go here From e9e79428d3789622b31522ef0810147c6aa645be Mon Sep 17 00:00:00 2001 From: Keyvan Mosharraf Date: Fri, 31 May 2019 03:45:59 -0700 Subject: [PATCH 5/5] Better way to include django_celery_beat in INSTALLED_APPS --- {{cookiecutter.project_slug}}/config/settings/base.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/{{cookiecutter.project_slug}}/config/settings/base.py b/{{cookiecutter.project_slug}}/config/settings/base.py index 94fd384f..2745058d 100644 --- a/{{cookiecutter.project_slug}}/config/settings/base.py +++ b/{{cookiecutter.project_slug}}/config/settings/base.py @@ -75,11 +75,10 @@ THIRD_PARTY_APPS = [ "allauth.account", "allauth.socialaccount", "rest_framework", -] -# http://docs.celeryproject.org/en/latest/userguide/periodic-tasks.html#using-custom-scheduler-classes -{% if cookiecutter.use_celery == 'y' -%} -THIRD_PARTY_APPS += ["django_celery_beat"] +{%- if cookiecutter.use_celery == 'y' %} + "django_celery_beat", {%- endif %} +] LOCAL_APPS = [ "{{ cookiecutter.project_slug }}.users.apps.UsersConfig",