Skip to content

Commit e3fcabd

Browse files
committed
Migrate short GitHub app tasks
1 parent b828685 commit e3fcabd

4 files changed

Lines changed: 25 additions & 19 deletions

File tree

app/config/settings.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1197,10 +1197,6 @@ def get_private_ip():
11971197
)
11981198

11991199
CELERY_BEAT_SCHEDULE = {
1200-
"refresh_expiring_user_tokens": {
1201-
"task": "grandchallenge.github.tasks.refresh_expiring_user_tokens",
1202-
"schedule": crontab(hour=0, minute=15),
1203-
},
12041200
"update_publication_metadata": {
12051201
"task": "grandchallenge.publications.tasks.update_publication_metadata",
12061202
"schedule": crontab(hour=0, minute=30),
@@ -1273,10 +1269,6 @@ def get_private_ip():
12731269
"task": "grandchallenge.browser_sessions.tasks.clear_sessions",
12741270
"schedule": timedelta(hours=1),
12751271
},
1276-
"cleanup_expired_tokens": {
1277-
"task": "grandchallenge.github.tasks.cleanup_expired_tokens",
1278-
"schedule": timedelta(hours=1),
1279-
},
12801272
"cleanup_sent_raw_emails": {
12811273
"task": "grandchallenge.emails.tasks.cleanup_sent_raw_emails",
12821274
"schedule": timedelta(hours=1),

app/grandchallenge/github/tasks.py

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
from django.db import transaction
1717
from django.db.transaction import on_commit
1818
from django.utils.timezone import now
19+
from lambda_tasks.decorators import lambda_task
1920

2021
from grandchallenge.algorithms.models import Algorithm
2122
from grandchallenge.codebuild.tasks import create_codebuild_build
@@ -179,8 +180,13 @@ def unlink_algorithm(*, pk):
179180
)
180181

181182

182-
@acks_late_micro_short_task
183+
@acks_late_micro_short_task(name=f"{__name__}.cleanup_expired_tokens")
183184
@transaction.atomic
185+
def cleanup_expired_tokens_celery(**kwargs):
186+
return cleanup_expired_tokens(**kwargs)
187+
188+
189+
@lambda_task
184190
def cleanup_expired_tokens():
185191
from grandchallenge.github.models import GitHubUserToken
186192

@@ -189,8 +195,13 @@ def cleanup_expired_tokens():
189195
).delete()
190196

191197

192-
@acks_late_micro_short_task
193-
def refresh_user_token(*, pk):
198+
@acks_late_micro_short_task(name=f"{__name__}.refresh_user_token")
199+
def refresh_user_token_celery(**kwargs):
200+
return refresh_user_token(**kwargs)
201+
202+
203+
@lambda_task
204+
def refresh_user_token(*, pk: int):
194205
from grandchallenge.github.models import GitHubUserToken
195206

196207
token = GitHubUserToken.objects.get(pk=pk)
@@ -204,7 +215,12 @@ def refresh_user_token(*, pk):
204215
token.save()
205216

206217

207-
@acks_late_micro_short_task
218+
@acks_late_micro_short_task(name=f"{__name__}.refresh_expiring_user_tokens")
219+
def refresh_expiring_user_tokens_celery(**kwargs):
220+
return refresh_expiring_user_tokens(**kwargs)
221+
222+
223+
@lambda_task
208224
def refresh_expiring_user_tokens():
209225
"""Refresh user tokens expiring in the next 1 to 28 days"""
210226
from grandchallenge.github.models import GitHubUserToken
@@ -214,6 +230,4 @@ def refresh_expiring_user_tokens():
214230
refresh_token_expires__lt=now() + timedelta(days=28),
215231
)
216232
for token in queryset.iterator():
217-
on_commit(
218-
refresh_user_token.signature(kwargs={"pk": token.pk}).apply_async
219-
)
233+
refresh_user_token.execute_on_commit(pk=token.pk)

app/tests/github_tests/test_tasks.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,5 +95,5 @@ def test_refresh_expiring_user_tokens(django_capture_on_commit_callbacks):
9595
assert len(callbacks) == 1
9696
assert (
9797
repr(callbacks[0])
98-
== f"<bound method Signature.apply_async of grandchallenge.github.tasks.refresh_user_token(pk={t3.pk})>"
98+
== f"<bound method SQSLambdaTask._execute of SQSLambdaTask(message=SQSLambdaTaskMessage(task_name='grandchallenge.github.tasks.refresh_user_token', kwargs={{'pk': {t3.pk}}}, n_retries=0), delay=0, queue='default')>"
9999
)

uv.lock

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)