diff --git a/alliance_auth/settings.py.example b/alliance_auth/settings.py.example index 11b8ddb6..8675ccba 100644 --- a/alliance_auth/settings.py.example +++ b/alliance_auth/settings.py.example @@ -82,12 +82,8 @@ CELERYBEAT_SCHEDULE = { 'task': 'esi.tasks.cleanup_token', 'schedule': crontab(day_of_month='*/1'), }, - 'run_corp_update': { - 'task': 'eveonline.tasks.run_corp_update', - 'schedule': crontab(minute=0, hour="*/2"), - }, - 'update_all_corpstats': { - 'task': 'corputils.tasks.update_all_corpstats', + 'run_model_update': { + 'task': 'eveonline.tasks.run_model_update', 'schedule': crontab(minute=0, hour="*/6"), }, } diff --git a/eveonline/tasks.py b/eveonline/tasks.py index 55fd1411..c2e1a4b1 100644 --- a/eveonline/tasks.py +++ b/eveonline/tasks.py @@ -1,18 +1,15 @@ from __future__ import unicode_literals -from django.conf import settings -from celery.task import periodic_task -from celery import task -from celery.task.schedules import crontab from eveonline.managers import EveManager from eveonline.models import EveCorporationInfo from eveonline.models import EveAllianceInfo -from eveonline.providers import ObjectNotFound +from eveonline.models import EveCharacter import logging from alliance_auth.celeryapp import app logger = logging.getLogger(__name__) + @app.task def update_corp(corp_id): EveManager.update_corporation(corp_id) @@ -25,35 +22,19 @@ def update_alliance(alliance_id): @app.task -def run_corp_update(): - # generate member corps - for corp_id in settings.STR_CORP_IDS + settings.STR_BLUE_CORP_IDS: - try: - if EveCorporationInfo.objects.filter(corporation_id=corp_id).exists(): - update_corp.apply(arge=[corp_id]) - else: - EveManager.create_corporation(corp_id) - except ObjectNotFound: - logger.warn('Bad corp ID in settings: %s' % corp_id) +def update_character(character_id): + EveManager.update_character(character_id) - # generate member alliances - for alliance_id in settings.STR_ALLIANCE_IDS + settings.STR_BLUE_ALLIANCE_IDS: - try: - if EveAllianceInfo.objects.filter(alliance_id=alliance_id).exists(): - logger.debug("Updating existing owner alliance model with id %s" % alliance_id) - update_alliance.apply(args=[alliance_id]) - else: - EveManager.create_alliance(alliance_id) - EveManager.populate_alliance(alliance_id) - except ObjectNotFound: - logger.warn('Bad alliance ID in settings: %s' % alliance_id) +@app.task +def run_model_update(): # update existing corp models - for corp in EveCorporationInfo.objects.exclude( - corporation_id__in=settings.STR_CORP_IDS + settings.STR_BLUE_CORP_IDS): - update_corp.delay(corp.corporation_id) + for corp in EveCorporationInfo.objects.all().values('corporation_id'): + update_corp.delay(corp['corporation_id']) # update existing alliance models - for alliance in EveAllianceInfo.objects.exclude( - alliance_id__in=settings.STR_ALLIANCE_IDS + settings.STR_BLUE_ALLIANCE_IDS): - update_alliance.delay(alliance.alliance_id) + for alliance in EveAllianceInfo.objects.all().values('alliance_id'): + update_alliance.delay(alliance['alliance_id']) + + for character in EveCharacter.objects.all().values('character_id'): + update_character.delay(character['character_id'])