Split API import tasks into two seperate jobs, one for the frontend, one for backend

This commit is contained in:
2010-12-01 12:00:30 +00:00
parent cab224c224
commit ea925e3305
2 changed files with 12 additions and 5 deletions

View File

@@ -30,8 +30,14 @@ def queue_apikey_updates(update_delay=86400, batch_size=50):
@task(ignore_result=True) @task(ignore_result=True)
def import_apikey(api_userid, api_key, user=None, force_cache=False): def import_apikey(api_userid, api_key, user=None, force_cache=False):
import_apikey_func(api_userid, api_key, user, force_cache):
log = import_apikey.get_logger('import_apikey') @task()
def import_apikey_result(api_userid, api_key, user=None, force_cache=False):
return import_apikey_func(api_userid, api_key, user, force_cache)
def import_apikey_func(api_userid, api_key, user=None, force_cache=False):
log = import_apikey.get_logger('import_apikey_result')
log.info('Importing %s/%s' % (api_userid, api_key)) log.info('Importing %s/%s' % (api_userid, api_key))
acc = import_eve_account(api_key, api_userid, force_cache=force_cache) acc = import_eve_account(api_key, api_userid, force_cache=force_cache)
log.debug('Completed') log.debug('Completed')
@@ -59,6 +65,8 @@ def import_apikey(api_userid, api_key, user=None, force_cache=False):
if acc.user: if acc.user:
update_user_access.delay(user=acc.user.id) update_user_access.delay(user=acc.user.id)
return acc
@task(ignore_result=True) @task(ignore_result=True)
def import_alliance_details(): def import_alliance_details():

View File

@@ -104,14 +104,13 @@ def eveapi_refresh(request, userid=0):
pass pass
else: else:
if acc.user == request.user or request.user.is_superuser: if acc.user == request.user or request.user.is_superuser:
task = import_apikey.delay(api_key=acc.api_key, api_userid=acc.api_user_id, force_cache=True, user=request.user.id) task = import_apikey_result.delay(api_key=acc.api_key, api_userid=acc.api_user_id, force_cache=True, user=request.user.id)
if request.is_ajax(): if request.is_ajax():
try: try:
task.wait(30) acc = task.wait(30)
except celery.exceptions.TimeoutError: except celery.exceptions.TimeoutError:
pass acc = EVEAccount.objects.get(id=userid)
acc = EVEAccount.objects.get(id=userid)
return HttpResponse(serializers.serialize('json', [acc]), mimetype='application/javascript') return HttpResponse(serializers.serialize('json', [acc]), mimetype='application/javascript')
else: else:
messages.add_message(request, messages.INFO,"Key %s has been queued to be refreshed from the API" % acc.api_user_id) messages.add_message(request, messages.INFO,"Key %s has been queued to be refreshed from the API" % acc.api_user_id)