def process_anuga_message(): print "firing process_anuga_message task" c = messaging_amqp.ServerMessages() while True: msg = c.recv_message() if msg is None: break print('Server got message: %s' % msg) # Ack and delete the message c.ack_message() output_json = json.loads(msg) scenario = Scenario.objects.get(pk=output_json['scenario_id']) user = User.objects.get(username=output_json['user']) if output_json['status'] == "START": scenario.anuga_status = output_json['status'] scenario.anuga_instance = output_json['instance'] scenario.anuga_start_timestamp = datetime.datetime.fromtimestamp(float(output_json['time'])) scenario.save() elif output_json['status'] == "ABORT": scenario.anuga_status = output_json['status'] scenario.anuga_abort_message = output_json['message'] scenario.anuga_log_timestamp = datetime.datetime.fromtimestamp(float(output_json['time'])) scenario.save() elif output_json['status'] == "LOG": scenario.anuga_status = output_json['status'] scenario.anuga_log_message = output_json['msg'] scenario.anuga_log_timestamp = datetime.datetime.fromtimestamp(float(output_json['time'])) #scenario.save() elif output_json['status'] == "STOP" and "payload" in output_json.keys(): scenario.anuga_payload = output_json["payload"] scenario.anuga_status = output_json['status'] scenario.anuga_end_timestamp = datetime.datetime.fromtimestamp(float(output_json['time'])) scenario.save() process_finished_simulation(scenario) elif output_json['status'] == "IDLE": pass
import sys import os import csv sys.path.append("../") os.environ['DJANGO_SETTINGS_MODULE'] = "tsudat2.settings" from tsudat.utils import process_finished_simulation from tsudat.models import Scenario import logging, sys for _module in ["geonode.maps.views", "geonode.maps.gs_helpers", "tsudat2.tsudat.models", "tsudat2.tsudat.views", "tsudat2.tsudat.tasks", "tsudat2.tsudat.utils"]: _logger = logging.getLogger(_module) _logger.addHandler(logging.StreamHandler(sys.stderr)) _logger.setLevel(logging.DEBUG) scenarios = Scenario.objects.filter(anuga_status = "STOP") for scenario in scenarios: print "reprocessing completed scenario %d" % scenario.id process_finished_simulation(scenario)