Второй пункт вашего вопроса можно получить, запустив asyncio в отдельной теме и используя asyncio.run_coroutine_threadsafe
для планирования сопрограмм. Например:
class FibonacciCalculatorAsync:
def __init__(self):
self.pool = ThreadPoolExecutor(max_workers=2)
self.loop = asyncio.get_event_loop()
@staticmethod
def calculate_sync(n):
print(f"started n={n}")
return fibonacci(n)
async def calculate(self, n):
result = await self.loop.run_in_executor(self.pool, self.calculate_sync, n)
print(result)
def run(self, n):
asyncio.run_coroutine_threadsafe(self.calculate(n), self.loop)
def start_loop(self):
thr = threading.Thread(target=self.loop.run_forever)
thr.daemon = True
thr.start()
if __name__ == '__main__':
calculator = FibonacciCalculatorAsync()
calculator.start_loop()
calculator.run(35)
calculator.run(32)
print("initial thread can continue its work")
calculator.run(10)
time.sleep(1)
У меня были подобные проблемы и решение, которое мы использовали, должен был переустановить SQL-сервер 2008 и в точке, где это просит у Вас экземпляр по умолчанию или именованный экземпляр, использовал именованный экземпляр, и продвинуться.
Это не влияет ни на какие в настоящее время устанавливаемые экземпляры, но создает новый экземпляр предоставленного имени, и затем оттуда на должно быть применимым.
Если это - экземпляр, Вы хотите создать Вас, мог бы хотеть взглянуть на этот вопрос - это могло бы работать тот же путь