Advertisement
Guest User

Untitled

a guest
Jan 31st, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.96 KB | None | 0 0
  1. import mysql.connector
  2. import requests
  3. import json
  4. from statModule import *
  5.  
  6. def openJSONFile(fileName):
  7.     jsonData = open(fileName)
  8.     data = json.load(jsonData)
  9.     jsonData.close()
  10.     return data
  11.  
  12. def saveJSONFile(fileName, result):
  13.     j=json.dumps(result,cls=NumpyAwareJSONEncoder)
  14.     f=open(fileName,"w")
  15.     f.write(j)
  16.     f.close()
  17.  
  18. def saveStringToFile(fileName, result):
  19.     f=open(fileName,"w")
  20.     f.write(result)
  21.     f.close()
  22.  
  23. class NumpyAwareJSONEncoder(json.JSONEncoder):
  24.     def default(self, obj):
  25.         return json.JSONEncoder.default(self, obj)
  26.  
  27. import sys
  28.  
  29. # Доступные статусы status
  30. # 1 - Шаг модели 1
  31. # 2 - Шаг модели 2
  32. # 3 - Шаг модели 3
  33. # 4 - Шаг модели 4
  34. # 5 - Модель прошла проверку
  35. # 110 - готова к вычислениям
  36. # 6 - Модель вычисляется
  37. # 7 - готова к отправке на стат. обработку
  38. # 8 - готова к выводу
  39.  
  40.  
  41. calc_file_path = '~/PycharmProjects/daemon/spiiran/disp/'
  42. url = 'http://192.168.1.10:7660'
  43. headers = {"Content-type": "application/json", "Accept": "application/json"}
  44.  
  45. conn = mysql.connector.connect(host='127.0.0.1', port=8889, database='astra', user='root', password='root')
  46.  
  47. cursor = conn.cursor()
  48.  
  49.  
  50.  
  51.  
  52. # Тут блок с опросом вычислителя
  53. cursor.execute("SELECT * FROM model WHERE status=6 LIMIT 1")
  54. row = cursor.fetchone()
  55.  
  56. if row is not None:
  57.     id = row[0]
  58.     print(row)
  59.  
  60.     values = {"status": 2}
  61.     r = requests.post(url, json.dumps(values), headers)
  62.  
  63.     response = r.json()
  64.  
  65.  
  66.     print(response)
  67.  
  68.     # Блок проверики статуса вычислителя
  69.     if response['status'] == 1:
  70.         sql = "UPDATE model SET calc_count={} WHERE id={}".format(response['count'], id)
  71.         cursor.execute(sql)
  72.         conn.commit()
  73.         print(response['count'])
  74.  
  75.     if response['status'] == 0:
  76.         sql = "UPDATE model SET status=7 WHERE id={}".format(id)
  77.         cursor.execute(sql)
  78.         conn.commit()
  79.         file_name = row[8]
  80.         #values = openJSONFile(file_name)
  81.         #values['status'] = 1
  82.         saveJSONFile('stat_file.json', response)
  83.         print(response['matrix'])
  84.  
  85.     if response['status'] == -1:
  86.         print("Все очень плохо")
  87.     # Если есть запись на счет - выводим количество или ошибку, завершаем скрипт
  88.     exit()
  89.  
  90.     # конец блока
  91.  
  92. # Конец блока
  93. # Тут блок с посылом нового файла на вычисление
  94.  
  95. cursor.execute("SELECT * FROM model WHERE status=110 ORDER BY date_add LIMIT 1")
  96. row = cursor.fetchone()
  97.  
  98. if row is not None:
  99.     # Тут блок с вычислителем, посылаем файл на обработку
  100.     file_name = row[8]
  101.     values = openJSONFile(file_name)
  102.     values['status'] = 1
  103.  
  104.     r = requests.post(url, json.dumps(values), headers)
  105.  
  106.     response = r.json()
  107.  
  108.     # Конец блока
  109.  
  110.     # Если ответ 0 - начали вычисления #
  111.     if response['status'] == 0:
  112.         id = row[0]
  113.         sql = "UPDATE model SET status=6 WHERE id={}".format(id)
  114.         cursor.execute(sql)
  115.         conn.commit()
  116.  
  117.     exit()
  118.  
  119. #Конец блока
  120.  
  121.  
  122. # Тут блок с посылом нового файла на статистический анализ
  123.  
  124. cursor.execute("SELECT * FROM model WHERE status=7 ORDER BY date_add LIMIT 1")
  125. row = cursor.fetchone()
  126.  
  127. if row is not None:
  128.     print(row)
  129.  
  130.     # Тут блок с посылом на статистику, посылаем файл на обработку
  131.     response = {'status': 0}
  132.     id = row[0]
  133.     # Конец блока
  134.     if response['status'] == 0:
  135.         stat_main("stat_file.json")
  136.         print('Послал на статистику :) id = {}'.format(id))
  137.  
  138.     exit()
  139.  
  140. #конец блока
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement