Alter task to update all eveonline models

This commit is contained in:
Adarnof 2017-06-12 22:20:42 -04:00
parent ebb44773c2
commit 7ab88dd663
2 changed files with 15 additions and 38 deletions

View File

@ -82,12 +82,8 @@ CELERYBEAT_SCHEDULE = {
'task': 'esi.tasks.cleanup_token', 'task': 'esi.tasks.cleanup_token',
'schedule': crontab(day_of_month='*/1'), 'schedule': crontab(day_of_month='*/1'),
}, },
'run_corp_update': { 'run_model_update': {
'task': 'eveonline.tasks.run_corp_update', 'task': 'eveonline.tasks.run_model_update',
'schedule': crontab(minute=0, hour="*/2"),
},
'update_all_corpstats': {
'task': 'corputils.tasks.update_all_corpstats',
'schedule': crontab(minute=0, hour="*/6"), 'schedule': crontab(minute=0, hour="*/6"),
}, },
} }

View File

@ -1,18 +1,15 @@
from __future__ import unicode_literals 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.managers import EveManager
from eveonline.models import EveCorporationInfo from eveonline.models import EveCorporationInfo
from eveonline.models import EveAllianceInfo from eveonline.models import EveAllianceInfo
from eveonline.providers import ObjectNotFound from eveonline.models import EveCharacter
import logging import logging
from alliance_auth.celeryapp import app from alliance_auth.celeryapp import app
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@app.task @app.task
def update_corp(corp_id): def update_corp(corp_id):
EveManager.update_corporation(corp_id) EveManager.update_corporation(corp_id)
@ -25,35 +22,19 @@ def update_alliance(alliance_id):
@app.task @app.task
def run_corp_update(): def update_character(character_id):
# generate member corps EveManager.update_character(character_id)
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)
# 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 # update existing corp models
for corp in EveCorporationInfo.objects.exclude( for corp in EveCorporationInfo.objects.all().values('corporation_id'):
corporation_id__in=settings.STR_CORP_IDS + settings.STR_BLUE_CORP_IDS): update_corp.delay(corp['corporation_id'])
update_corp.delay(corp.corporation_id)
# update existing alliance models # update existing alliance models
for alliance in EveAllianceInfo.objects.exclude( for alliance in EveAllianceInfo.objects.all().values('alliance_id'):
alliance_id__in=settings.STR_ALLIANCE_IDS + settings.STR_BLUE_ALLIANCE_IDS): update_alliance.delay(alliance['alliance_id'])
update_alliance.delay(alliance.alliance_id)
for character in EveCharacter.objects.all().values('character_id'):
update_character.delay(character['character_id'])