From d6485e6e2f34275a82cac682ab40c578c367d7be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ses=C3=B3stris=20Vieira?= Date: Wed, 8 May 2013 20:17:02 -0300 Subject: [PATCH] =?UTF-8?q?Mais=20uns=20ajustes=20na=20gera=C3=A7=C3=A3o?= =?UTF-8?q?=20de=20dados=20do=20mapa.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- etc/cron/cronscript.py | 2 +- sigi/apps/metas/views.py | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/etc/cron/cronscript.py b/etc/cron/cronscript.py index 85e1177..8e43421 100644 --- a/etc/cron/cronscript.py +++ b/etc/cron/cronscript.py @@ -18,4 +18,4 @@ from sigi import settings setup_environ(settings) from sigi.apps.metas.views import gera_map_data_file -print gera_map_data_file(get_error=True) \ No newline at end of file +print gera_map_data_file(cronjob=True) \ No newline at end of file diff --git a/sigi/apps/metas/views.py b/sigi/apps/metas/views.py index d7e7ee4..10930a3 100644 --- a/sigi/apps/metas/views.py +++ b/sigi/apps/metas/views.py @@ -191,13 +191,16 @@ def filtrar_casas(seit, convenios, equipadas, regioes, estados, diagnosticos): return casas -def gera_map_data_file(get_error=False): +def gera_map_data_file(cronjob=False): ''' Criar um arquivo json em {settings.MEDIA_ROOT}/apps/metas/ com o nome de map_data.json Este arquivo será consumido pela view de dados de mapa. - Retorna os dados json. - Caso get_error seja True e ocorra algum erro na gravação do arquivo, - retorna a mensagem do erro que impediu a gravação. + Retorna os dados json caso cronjob seja falso. + Caso cronjob seja True, retorna log de tempo gasto na geração ou a mensagem do erro + que impediu a gravação do arquivo. ''' + import time + start = time.time() + casas = {} for c in CasaLegislativa.objects.select_related('servico', 'convenio', 'diagnostico').all().distinct(): @@ -250,10 +253,13 @@ def gera_map_data_file(get_error=False): file.write(json_data) file.close() except: # A gravação não foi bem sucedida ... - if get_error: # ... o chamador deseja a mensagem de erro + if cronjob: # ... o chamador deseja a mensagem de erro import sys return sys.exc_info()[0] else: pass # ... ou os dados poderão ser usados de qualquer forma - + + if cronjob: + return "Arquivo %s gerado em %d segundos" % (JSON_FILE_NAME, time.time() - start) + return json_data \ No newline at end of file