Skip to content

Commit 35a680f

Browse files
committed
clean-up celery worker
1 parent 263b952 commit 35a680f

3 files changed

Lines changed: 25 additions & 26 deletions

File tree

docker-compose.yml

Lines changed: 8 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -414,26 +414,16 @@ services:
414414
- .docker-compose.sharejs.env
415415
stdin_open: true
416416

417-
# beat:
418-
# image: quay.io/centerforopenscience/osf:develop
419-
# command: invoke celery_beat
420-
# depends_on:
421-
# - postgres
422-
# - rabbitmq
423-
# environment:
424-
# C_FORCE_ROOT: 1
425-
# DJANGO_SETTINGS_MODULE: api.base.settings
426-
# env_file:
427-
# - .docker-compose.env
428-
# volumes:
429-
# - ./:/code
430-
# - osf_requirements_3_12_vol:/usr/local/lib/python3.12
431-
# - osf_bower_components_vol:/code/website/static/vendor/bower_components
432-
# - osf_node_modules_vol:/code/node_modules
433-
434417
worker:
435418
image: quay.io/centerforopenscience/osf:develop
436-
command: python3 -m invoke celery-worker
419+
# Run worker in background; keep beat in foreground as the main PID
420+
command:
421+
- /bin/bash
422+
- -lc
423+
- |
424+
set -e
425+
python3 -m invoke celery-worker &
426+
invoke beat
437427
restart: unless-stopped
438428
depends_on:
439429
- postgres
@@ -442,17 +432,13 @@ services:
442432
environment:
443433
C_FORCE_ROOT: 1
444434
DJANGO_SETTINGS_MODULE: api.base.settings
445-
# BROKER_URL: amqp://guest:guest@192.168.168.167:5671/
446435
env_file:
447436
- .docker-compose.env
448437
volumes:
449438
- ./:/code:cached
450439
- osf_requirements_3_12_vol:/usr/local/lib/python3.12/
451440
- osf_bower_components_vol:/code/website/static/vendor/bower_components
452441
- osf_node_modules_vol:/code/node_modules
453-
# - ./ssl/ca-chain.cert.pem:/etc/ssl/certs/ca-chain.cert.pem:ro
454-
# - ./ssl/celery-client.cert.pem:/etc/ssl/certs/worker.pem:ro
455-
# - ./ssl/celery-client.key.pem:/etc/ssl/private/worker.key:ro
456442
stdin_open: true
457443

458444
admin:

tasks/__init__.py

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import invoke
1414
from invoke import Collection
1515

16-
from website import settings
1716
from .utils import pip_install, bin_prefix
1817

1918

@@ -63,6 +62,8 @@ def decorator(f):
6362
@task
6463
def server(ctx, host=None, port=5000, debug=True, gitlogs=False):
6564
"""Run the app server."""
65+
from website import settings
66+
6667
if os.environ.get('WERKZEUG_RUN_MAIN') == 'true' or not debug:
6768
if os.environ.get('WEB_REMOTE_DEBUG', None):
6869
import pydevd
@@ -95,6 +96,8 @@ def git_logs(ctx, branch=None):
9596
def apiserver(ctx, port=8000, wait=True, autoreload=True, host='127.0.0.1', pty=True):
9697
"""Run the API server."""
9798
env = os.environ.copy()
99+
from website import settings
100+
98101
cmd = 'DJANGO_SETTINGS_MODULE=api.base.settings {} manage.py runserver {}:{} --nothreading'\
99102
.format(sys.executable, host, port)
100103
if not autoreload:
@@ -114,6 +117,8 @@ def apiserver(ctx, port=8000, wait=True, autoreload=True, host='127.0.0.1', pty=
114117
def adminserver(ctx, port=8001, host='127.0.0.1', pty=True):
115118
"""Run the Admin server."""
116119
env = 'DJANGO_SETTINGS_MODULE="admin.base.settings"'
120+
from website import settings
121+
117122
cmd = f'{env} python3 manage.py runserver {host}:{port} --nothreading'
118123
if settings.SECURE_MODE:
119124
cmd = cmd.replace('runserver', 'runsslserver')
@@ -141,6 +146,7 @@ def sharejs(ctx, host=None, port=None, db_url=None, cors_allow_origin=None):
141146
os.environ['SHAREJS_DB_URL'] = db_url
142147
if cors_allow_origin:
143148
os.environ['SHAREJS_CORS_ALLOW_ORIGIN'] = cors_allow_origin
149+
from website import settings
144150

145151
if settings.SENTRY_DSN:
146152
os.environ['SHAREJS_SENTRY_DSN'] = settings.SENTRY_DSN
@@ -179,7 +185,7 @@ def celery_beat(ctx, level='debug', schedule=None):
179185
ctx.run(bin_prefix(cmd), pty=True)
180186

181187
@task
182-
def migrate_search(ctx, delete=True, remove=False, index=settings.ELASTIC_INDEX):
188+
def migrate_search(ctx, delete=True, remove=False, index='website'):
183189
"""Migrate the search-enabled models."""
184190
from website.app import init_app
185191
init_app(routes=False, set_backends=False)
@@ -546,6 +552,7 @@ def wheelhouse(ctx, addons=False, release=False, dev=False, pty=True):
546552
inv wheelhouse --addons
547553
inv wheelhouse --release
548554
"""
555+
from website import settings
549556
if release or addons:
550557
for directory in os.listdir(settings.ADDON_PATH):
551558
path = os.path.join(settings.ADDON_PATH, directory)
@@ -567,6 +574,8 @@ def wheelhouse(ctx, addons=False, release=False, dev=False, pty=True):
567574
@task
568575
def addon_requirements(ctx):
569576
"""Install all addon requirements."""
577+
from website import settings
578+
570579
for directory in os.listdir(settings.ADDON_PATH):
571580
path = os.path.join(settings.ADDON_PATH, directory)
572581

@@ -583,6 +592,8 @@ def addon_requirements(ctx):
583592

584593
@task
585594
def ci_addon_settings(ctx):
595+
from website import settings
596+
586597
for directory in os.listdir(settings.ADDON_PATH):
587598
path = os.path.join(settings.ADDON_PATH, directory, 'settings')
588599
if os.path.isdir(path):
@@ -595,6 +606,8 @@ def ci_addon_settings(ctx):
595606

596607
@task
597608
def copy_addon_settings(ctx):
609+
from website import settings
610+
598611
for directory in os.listdir(settings.ADDON_PATH):
599612
path = os.path.join(settings.ADDON_PATH, directory, 'settings')
600613
if os.path.isdir(path) and not os.path.isfile(os.path.join(path, 'local.py')):

website/notifications/tasks.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ def send_moderator_email_task(self, user_id, provider_id, notification_ids, mess
164164
logger.exception('Retrying send_moderator_email_task due to exception')
165165
raise self.retry(exc=e)
166166

167-
@celery_app.task
167+
@celery_app.task(name='website.notifications.tasks.send_users_digest_email')
168168
def send_users_digest_email():
169169
today = date.today()
170170

@@ -181,7 +181,7 @@ def send_users_digest_email():
181181
notification_ids = [msg['notification_id'] for msg in group['info']]
182182
send_user_email_task.delay(user_id, notification_ids, freq)
183183

184-
@celery_app.task
184+
@celery_app.task(name='website.notifications.tasks.send_moderators_digest_email')
185185
def send_moderators_digest_email():
186186
today = date.today()
187187

0 commit comments

Comments
 (0)