import logging
from concurrent.futures import ThreadPoolExecutor
from time import sleep
logger = logging.getLogger(__name__)
def task(n):
logger.info(f"Task {n} started")
sleep(0.001)
logger.info(f"Task {n} finished")
return n * n
def main():
with ThreadPoolExecutor(max_workers=2) as executor:
futures = [executor.submit(task, i) for i in range(5)]
_ = [f.result() for f in futures]
if __name__ == "__main__":
logging.basicConfig(level=logging.INFO)
main()
---
INFO:__main__:Task 0 started
INFO:__main__:Task 1 started
INFO:__main__:Task 0 finished
INFO:__main__:Task 2 started
INFO:__main__:Task 1 finished
INFO:__main__:Task 3 started
INFO:__main__:Task 2 finished
INFO:__main__:Task 4 started
INFO:__main__:Task 3 finished
INFO:__main__:Task 4 finished
< /code>
Но я хочу, чтобы журналы не были чередованы, и я готов пожертвовать доставкой журналов в режиме реального времени в каждом процессе, чтобы это произошло: < /p>
INFO:__main__:Task 1 started
INFO:__main__:Task 1 finished
INFO:__main__:Task 0 started
INFO:__main__:Task 0 finished
INFO:__main__:Task 4 started
INFO:__main__:Task 4 finished
INFO:__main__:Task 2 started
INFO:__main__:Task 2 finished
INFO:__main__:Task 3 started
INFO:__main__:Task 3 finished
Есть ли простой способ получить этот тип поведения?
Наивно параллелизируя некоторые задачи, которые включают в себя результаты ведения журнала в чередующихся журналах: < /p> [code]import logging from concurrent.futures import ThreadPoolExecutor from time import sleep
logger = logging.getLogger(__name__)
def task(n): logger.info(f"Task {n} started") sleep(0.001) logger.info(f"Task {n} finished") return n * n
def main(): with ThreadPoolExecutor(max_workers=2) as executor: futures = [executor.submit(task, i) for i in range(5)] _ = [f.result() for f in futures]
if __name__ == "__main__": logging.basicConfig(level=logging.INFO) main()
---
INFO:__main__:Task 0 started INFO:__main__:Task 1 started INFO:__main__:Task 0 finished INFO:__main__:Task 2 started INFO:__main__:Task 1 finished INFO:__main__:Task 3 started INFO:__main__:Task 2 finished INFO:__main__:Task 4 started INFO:__main__:Task 3 finished INFO:__main__:Task 4 finished < /code> Но я хочу, чтобы журналы не были чередованы, и я готов пожертвовать доставкой журналов в режиме реального времени в каждом процессе, чтобы это произошло: < /p> INFO:__main__:Task 1 started INFO:__main__:Task 1 finished INFO:__main__:Task 0 started INFO:__main__:Task 0 finished INFO:__main__:Task 4 started INFO:__main__:Task 4 finished INFO:__main__:Task 2 started INFO:__main__:Task 2 finished INFO:__main__:Task 3 started INFO:__main__:Task 3 finished [/code] Есть ли простой способ получить этот тип поведения?
У меня есть скрипт Python, который параллельно обрабатывает пакет файлов CSV. Каждый входной CSV-файл содержит ровно 200 строк, поэтому я использую флажок if num_videos == 200: для запуска функции типа:
if num_videos == 200:
all_data =...
У меня есть скрипт Python, который параллельно обрабатывает пакет файлов CSV. Каждый входной CSV-файл содержит ровно 200 строк, поэтому я использую флажок if num_videos == 200: для запуска функции типа:
if num_videos == 200:
all_data =...
Я опубликовал контейнерное веб-приложение в Azure под управлением ОС Linux с кодом на C# .NET.
И я хочу отправлять журналы приложения в настраиваемую таблицу в Azure Log Analytics.
Поэтому я следую руководствам по учебнику: отправка данных в Azure...
Я опубликовал контейнерное веб-приложение в Azure под управлением ОС Linux с кодом на C# .NET.
И я хочу отправлять журналы приложения в настраиваемую таблицу в Azure Log Analytics.
Поэтому я следую руководствам по учебнику: отправка данных в Azure...
Обновление от 25 июня – 2 (РЕШЕНО)
Как я мог быть таким глупым...
Я установил секретный дженерик и изменил файл развертывания.yaml для назначения переменных. И это сработало...
Подводя итог моим вопросам, все они были вызваны неправильной...