Как создать единый объект класса при использовании django-сельдерея? - PullRequest
1 голос
/ 26 апреля 2019

Я использую график ритма сельдерея для автоматического сброса атрибута в полночь.И после этого я также хочу отправить уведомление всем соответствующим пользователям, использующим firebase.Итак, я написал следующий код:

def send_notification(reg_ids, data_message):

    push_service = FCMNotification(api_key=fcm_config['GCM_API_KEY'])
    push_service.multiple_devices_data_message(registration_ids=reg_ids, data_message=message)


@shared_task 
def reset_daily_count():

    try:
        User.objects.all().update(daily_attempts=3)
    except Exception as e:
        logger.debug(e)
    else:
        send_notification(reg_ids, data_message)

Но этот код будет создавать объект FCMNotification каждый раз, когда я буду его вызывать.Я хочу создать отдельный объект и получать к нему доступ из любого места, когда это необходимо, даже для других задач сельдерея, не только периодических, но и обычных задач.Как я это сделаю?

1 Ответ

1 голос
/ 26 апреля 2019

Просто создайте объект, в котором вы определяете класс, и импортируйте его туда, куда хотите, как это.

class FCMNotification:
    pass
    # daclaration


push_service = FCMNotification(api_key=fcm_config['GCM_API_KEY'])

Вы можете использовать push_service в задачах сельдерея, а также обычный код, подобный этому.

from <PATH> import push_service
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...