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