* refactor: Factor out helper from fetch_meeting_attendance.py * feat: Define fetch_meeting_attendance_task task Equivalent to the fetch_meeting_attendance management command * chore: Disable fetch_meeting_attendance in bin/daily * feat: Log errors in fetch_meeting_attendance_task * feat: Enable a result backend for celery Ignore results by default, but enable the backend so we can manage tasks * feat: Define daily task in ietf.utils.tasks * refactor: Make bin/send-review-reminders into a task * refactor: Make bin/send-scheduled-mail into a task * chore: Update copyright years * refactor: Make bin/rfc-editor-index-updates into a task * refactor: Accept date type in rfc index update fn * chore: Update comment * fix: Annotate param as Optional * fix: Revert treating skip_older_than_date as str Misunderstood the comment, "fixed" a non-bug. Oops. * feat: mgmt command to create periodic tasks * feat: add summary of tasks to mgmt cmd * style: black * fix: Remove debug statements * feat: Enable/disable tasks * chore: Disable periodic tasks by default * chore: Revert changes to daily and every15m * fix: Call intended function * chore: Add task descriptions
28 lines
959 B
Python
28 lines
959 B
Python
# Copyright The IETF Trust 2024, All Rights Reserved
|
|
#
|
|
# Celery task definitions
|
|
#
|
|
from celery import shared_task
|
|
from django.utils import timezone
|
|
|
|
from ietf.meeting.models import Meeting
|
|
from ietf.stats.utils import fetch_attendance_from_meetings
|
|
from ietf.utils import log
|
|
|
|
|
|
@shared_task
|
|
def fetch_meeting_attendance_task():
|
|
# fetch most recent two meetings
|
|
meetings = Meeting.objects.filter(type="ietf", date__lte=timezone.now()).order_by("-date")[:2]
|
|
try:
|
|
stats = fetch_attendance_from_meetings(meetings)
|
|
except RuntimeError as err:
|
|
log.log(f"Error in fetch_meeting_attendance_task: {err}")
|
|
else:
|
|
for meeting, stats in zip(meetings, fetch_attendance_from_meetings(meetings)):
|
|
log.log(
|
|
"Fetched data for meeting {:>3}: {:4d} processed, {:4d} added, {:4d} in table".format(
|
|
meeting.number, stats.processed, stats.added, stats.total
|
|
)
|
|
)
|