old_console/ncircc/tasks.py
2024-11-02 14:12:45 +03:00

42 lines
1.4 KiB
Python

from __future__ import absolute_import, unicode_literals
import logging
from celery import shared_task
from company.models.company import Company
from ncircc.enums.notifications import NotificationStatusEnum
from ncircc.models.notification import Notification
from ncircc.services.comments import CommentsUpdaterService
from ncircc.services.notification import NotificationGetterUpdatedStatusServices
_log = logging.getLogger(__name__)
@shared_task()
def update_status_notification() -> None:
if not Company.objects.exists():
_log.debug(f'Task update. Not Company.')
return
notification_list = Notification.objects.exclude(notification_status=NotificationStatusEnum.ARCHIVED.value)
for notification in notification_list:
sender = NotificationGetterUpdatedStatusServices(notification.pk)
msg, status = sender.send()
if status != 200:
_log.error(f'Updating notification status from ncircc failed: {msg}')
@shared_task()
def update_comments() -> None:
if not Company.objects.exists():
_log.debug(f'Task update. Not Company.')
return
updated = CommentsUpdaterService()
for index in range(5):
msg, status = updated.send()
if status == 200:
_log.info('Task update comments success.')
break
else:
_log.error(f'Task update comments not success: {msg}. Retry count {index}')