mirror of
https://github.com/ets-labs/python-dependency-injector.git
synced 2025-03-13 16:48:06 +03:00
Move resources example
This commit is contained in:
parent
6e9dae52ca
commit
2b53ccdfe7
|
@ -1,12 +1,14 @@
|
||||||
"""`Resource` provider example."""
|
"""`Resource` provider example."""
|
||||||
|
|
||||||
import concurrent.futures
|
import sys
|
||||||
|
import logging
|
||||||
|
from concurrent.futures import ThreadPoolExecutor
|
||||||
|
|
||||||
from dependency_injector import containers, providers
|
from dependency_injector import containers, providers
|
||||||
|
|
||||||
|
|
||||||
def init_threat_pool(max_workers: int):
|
def init_threat_pool(max_workers: int):
|
||||||
thread_pool = concurrent.futures.ThreadPoolExecutor(max_workers=max_workers)
|
thread_pool = ThreadPoolExecutor(max_workers=max_workers)
|
||||||
yield thread_pool
|
yield thread_pool
|
||||||
thread_pool.shutdown(wait=True)
|
thread_pool.shutdown(wait=True)
|
||||||
|
|
||||||
|
@ -20,13 +22,20 @@ class Container(containers.DeclarativeContainer):
|
||||||
max_workers=config.max_workers,
|
max_workers=config.max_workers,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
logging = providers.Resource(
|
||||||
|
logging.basicConfig,
|
||||||
|
level=logging.INFO,
|
||||||
|
stream=sys.stdout,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
container = Container(config={'max_workers': 4})
|
container = Container(config={'max_workers': 4})
|
||||||
|
|
||||||
container.init_resources()
|
container.init_resources()
|
||||||
|
|
||||||
|
logging.info('Resources are initialized')
|
||||||
thread_pool = container.thread_pool()
|
thread_pool = container.thread_pool()
|
||||||
assert list(thread_pool.map(str, range(3))) == ['0', '1', '2']
|
thread_pool.map(print, range(10))
|
||||||
|
|
||||||
container.shutdown_resources()
|
container.shutdown_resources()
|
Loading…
Reference in New Issue
Block a user