DmitrMakeev
commited on
Commit
•
33de58e
1
Parent(s):
6a3ed0f
Update app.py
Browse files
app.py
CHANGED
@@ -108,71 +108,67 @@ for db in DATABASES:
|
|
108 |
|
109 |
|
110 |
|
111 |
-
# Флаг выполнения кода
|
112 |
code_executed = False
|
113 |
|
114 |
# Переменная для хранения данных
|
115 |
export_data_var = None
|
116 |
|
117 |
-
async def fetch(url):
|
118 |
-
async with
|
119 |
-
|
120 |
-
return response.json()
|
121 |
-
|
122 |
-
async def get_export_id():
|
123 |
-
url_template = f"{gc_url_gru}/{id_gru}/users?key={gc_api}&created_at[from]={date_from}&status={status}"
|
124 |
-
data = await fetch(url_template)
|
125 |
-
if data.get("success"):
|
126 |
-
return data.get("info", {}).get("export_id", "")
|
127 |
-
else:
|
128 |
-
raise Exception(f"Ошибка в ответе от сервера: {data.get('error_message')}")
|
129 |
-
|
130 |
-
async def get_export_data(export_id):
|
131 |
-
export_url_template = f"{gc_url_export}/{export_id}?key={gc_api}"
|
132 |
-
data = await fetch(export_url_template)
|
133 |
-
if data.get("success"):
|
134 |
-
return data
|
135 |
-
else:
|
136 |
-
raise Exception(f"Ошибка при выполнении второго запроса по export_id, статус код: {data.get('status_code')}")
|
137 |
|
138 |
async def main():
|
139 |
global code_executed, export_data_var
|
140 |
|
141 |
-
|
142 |
-
try:
|
143 |
-
export_id = await get_export_id()
|
144 |
-
print("Export ID:", export_id)
|
145 |
-
|
146 |
-
# Задержка в 5 минут перед вторым запросом (в секундах)
|
147 |
-
time_delay = 5 * 60
|
148 |
-
print(f"Ждем {time_delay} секунд перед вторым запросом...")
|
149 |
-
await asyncio.sleep(time_delay)
|
150 |
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
#
|
159 |
-
|
160 |
-
print(
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
165 |
else:
|
166 |
print("Системная переменная start_up не равна '1' или код уже выполнялся при старте сервера.")
|
167 |
|
168 |
-
app = Flask(__name__)
|
169 |
-
|
170 |
-
@app.before_first_request
|
171 |
-
def init_async():
|
172 |
-
asyncio.run(main())
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
|
177 |
|
178 |
|
@@ -1053,11 +1049,10 @@ def gc_db_email():
|
|
1053 |
|
1054 |
|
1055 |
|
|
|
|
|
|
|
1056 |
|
1057 |
|
1058 |
|
1059 |
|
1060 |
-
|
1061 |
-
|
1062 |
-
if __name__ == '__main__':
|
1063 |
-
app.run(host='0.0.0.0', port=int(os.environ.get('PORT', 7860)))
|
|
|
108 |
|
109 |
|
110 |
|
|
|
111 |
code_executed = False
|
112 |
|
113 |
# Переменная для хранения данных
|
114 |
export_data_var = None
|
115 |
|
116 |
+
async def fetch(session, url):
|
117 |
+
async with session.get(url) as response:
|
118 |
+
return await response.json()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
119 |
|
120 |
async def main():
|
121 |
global code_executed, export_data_var
|
122 |
|
123 |
+
print(f"start_up: {start_up}, code_executed: {code_executed}")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
124 |
|
125 |
+
if start_up == '1' and not code_executed:
|
126 |
+
print("start_up равен '1' и код еще не выполнялся.")
|
127 |
+
# Формирование URL для первого запроса
|
128 |
+
url_template = f"{gc_url_gru}/{id_gru}/users?key={gc_api}&created_at[from]={date_from}&status={status}"
|
129 |
+
print(f"URL первого запроса: {url_template}")
|
130 |
+
|
131 |
+
async with aiohttp.ClientSession() as session:
|
132 |
+
# Отправка первого запроса к серверу
|
133 |
+
data = await fetch(session, url_template)
|
134 |
+
print("Первый запрос отправлен.")
|
135 |
+
|
136 |
+
if data.get("success"):
|
137 |
+
export_id = data.get("info", {}).get("export_id", "")
|
138 |
+
print("Export ID:", export_id)
|
139 |
+
|
140 |
+
# Задержка в 5 минут перед вторым запросом (в секундах)
|
141 |
+
time_delay = 5 * 60
|
142 |
+
print(f"Ждем {time_delay} секунд перед вторым запросом...")
|
143 |
+
await asyncio.sleep(time_delay)
|
144 |
+
|
145 |
+
# Формирование URL для второго запроса по export_id
|
146 |
+
export_url_template = f"{gc_url_export}/{export_id}?key={gc_api}"
|
147 |
+
print(f"URL второго запроса: {export_url_template}")
|
148 |
+
|
149 |
+
# Отправка второго запроса к серверу по export_id
|
150 |
+
export_data = await fetch(session, export_url_template)
|
151 |
+
print("Второй запрос отправлен.")
|
152 |
+
|
153 |
+
if export_data.get("success"):
|
154 |
+
print("Полученные данные по export_id:", export_data)
|
155 |
+
|
156 |
+
# Сохранение данных в переменную
|
157 |
+
export_data_var = export_data
|
158 |
+
|
159 |
+
# Пример использования переменной export_data_var
|
160 |
+
# Здесь вы можете выполнять любые операции с данными
|
161 |
+
print("Пример использования переменной export_data_var:")
|
162 |
+
print(export_data_var)
|
163 |
+
|
164 |
+
code_executed = True # Устанавливаем флаг выполнения кода
|
165 |
+
else:
|
166 |
+
print(f"Ошибка при выполнении второго запроса по export_id, статус код: {export_data.get('status_code')}")
|
167 |
+
else:
|
168 |
+
print("Ошибка в ответе от сервера:", data.get("error_message"))
|
169 |
else:
|
170 |
print("Системная переменная start_up не равна '1' или код уже выполнялся при старте сервера.")
|
171 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
172 |
|
173 |
|
174 |
|
|
|
1049 |
|
1050 |
|
1051 |
|
1052 |
+
if __name__ == '__main__':
|
1053 |
+
asyncio.run(main())
|
1054 |
+
app.run(host='0.0.0.0', port=int(os.environ.get('PORT', 7860)))
|
1055 |
|
1056 |
|
1057 |
|
1058 |
|
|
|
|
|
|
|
|