На Ubuntu server после ввода команды bg <номер процесса> ничего не происходит, просто возвращается строка на ввод.
При вводе команды bg <номер процесса> на экране начинает отображается вывод этого процесса, при этом окно терминала наглухо зависает и я ничего не могу сделать, даже остановить процесс (ctr+C)
Хочу такой вариант пропустить и сразу перейти к kubernetis
Знаю, что могу вынести DB и pgbouncer на отдельные сервера
from typing import NamedTuple
class Result(NamedTuple):
text: str # текст запроса
success: bool # успешен ли запрос
status: str # статус
async def check_text(text: str) -> Result:
url = f'https://сайт.com/?query={text}'
async with aiohttp.ClientSession() as session:
async with session.get(url) as response:
if response.status != 200:
return Result(text=text, success=False, status='Не удалось определить результат')
html = await response.text()
soup = BeautifulSoup(html, 'html.parser')
status_element = soup.find('div', class_='table-block')
if not status_element:
return Result(text=text, success=False, status='Не удалось определить результат')
status_text = status_element.get_text().strip()
# тебе нужно будет решить, когда запрос был успешен (True), а когда нет (False)
if "ok" in status_text:
return Result(text=text, success=True, status='Можно')
elif "no" in status_text:
return Result(text=text, success=False, status='Данный вариант недоступен')
elif "no1" in status_text:
return Result(text=text, success=True, status='Можно под заказ')
else:
return Result(text=text, success=False, status='Неизвестно')
result = await check_text(text)
if result.success:
... # реагируем на успешный запрос
logger.info('%s: %s', result.text, result.status)
else:
... # реагируем на неудачный запрос
logger.info('%s: %s', result.text, result.status)
l = [int(i) for i in '1 2 3 4 5 6 7 8 9'.split()]
m=3
result = [l[i:i+m] for i in range(0, len(l), m)]
import tkinter as tk
from tkinter import ttk
import asyncio
class App:
async def exec(self):
self.window = Window(asyncio.get_event_loop())
await self.window.show();
class Window(tk.Tk):
def __init__(self, loop):
self.loop = loop
self.root = tk.Tk()
self.animation = "░▒▒▒▒▒"
self.label = tk.Label(text="")
self.label.grid(row=0, columnspan=2, padx=(8, 8), pady=(16, 0))
self.progressbar = ttk.Progressbar(length=280)
self.progressbar.grid(row=1, columnspan=2, padx=(8, 8), pady=(16, 0))
button_block = tk.Button(text="Calculate Sync", width=10, command=self.calculate_sync)
button_block.grid(row=2, column=0, sticky=tk.W, padx=8, pady=8)
button_non_block = tk.Button(text="Calculate Async", width=10, command=lambda: self.loop.create_task(self.calculate_async()))
button_non_block.grid(row=2, column=1, sticky=tk.W, padx=8, pady=8)
async def show(self):
while True:
self.label["text"] = self.animation
self.animation = self.animation[1:] + self.animation[0]
self.root.update()
await asyncio.sleep(.1)
def calculate_sync(self):
max = 3000000
for i in range(1, max):
self.progressbar["value"] = i / max * 100
async def calculate_async(self):
max = 3000000
for i in range(1, max):
self.progressbar["value"] = i / max * 100
if i % 1000 == 0:
await asyncio.sleep(0)
asyncio.run(App().exec())
for line in data:
делай цикл вручную, например так:while True:
line = data.readline()
if not line:
break
... # тут выполняем дальнейшие операции
edk2-ovmf-202308-2
(модификация 2), которую pacman и пытается запросить у внешнего сервера, НО на серверах она уже другая edk2-ovmf-202308-3
(модификация 3) что можно видеть если запросить информацию с сервера по данному пакетуpacman -Si edk2-ovmf
pacman -Sy
pacman -Sh
...
-y, --refresh загрузить обновленные базы данных с серверов
(-yy принудительно обновить даже если обновленные)
-u, --sysupgrade
pacman -Syu edk2-ovmf