from pebble import ProcessPool
from multiprocessing import Process, Pool, cpu_count
import time
def test_fn(randomNumberFromList):
# print(f'Beginnging for this number: {randomNumberFromList}')
if randomNumberFromList in [1,66,3,88,5,777]:
time.sleep(10)
completion_state = [randomNumberFromList, True]
return completion_state
else:
time.sleep(1)
completion_state = [randomNumberFromList, True]
return completion_state
def main():
list1 = [1, 2, 3, 4, 5, 6, 20, 33, 55, 233, 44, 66, 2666, 555, 8888, 888, 88, 77, 777, 7777, 77777]
with ProcessPool() as pool:
future = pool.map(test_fn, list1, timeout=4)
iterator = future.result()
while True:
try:
result = next(iterator)
print(result)
except StopIteration:
break
except TimeoutError as error:
print(f'list1value took longer than {error.args[1]} seconds.')
Однако я не могу получить «неудачные» значения в списке 1 в блоке TimeoutError. Как мне это сделать? В этом примере я хочу, чтобы «1 заняло больше 4 секунд», «66 заняло больше 4 секунд» и т. д. для вывода на консоль.
Просмотрел документацию Pebble. , не нашел метода, который мог бы принести мне пользу
Я пытаюсь настроить рабочий тайм-аут в Pebble (в принципе это работает) [code]from pebble import ProcessPool from multiprocessing import Process, Pool, cpu_count import time
def test_fn(randomNumberFromList): # print(f'Beginnging for this number: {randomNumberFromList}')
if randomNumberFromList in [1,66,3,88,5,777]: time.sleep(10) completion_state = [randomNumberFromList, True] return completion_state else: time.sleep(1) completion_state = [randomNumberFromList, True] return completion_state
def main(): list1 = [1, 2, 3, 4, 5, 6, 20, 33, 55, 233, 44, 66, 2666, 555, 8888, 888, 88, 77, 777, 7777, 77777] with ProcessPool() as pool: future = pool.map(test_fn, list1, timeout=4) iterator = future.result() while True: try: result = next(iterator) print(result) except StopIteration: break except TimeoutError as error: print(f'list1value took longer than {error.args[1]} seconds.') [/code] Однако я не могу получить «неудачные» значения в списке 1 в блоке TimeoutError. Как мне это сделать? В этом примере я хочу, чтобы «1 заняло больше 4 секунд», «66 заняло больше 4 секунд» и т. д. для вывода на консоль. Просмотрел документацию Pebble. , не нашел метода, который мог бы принести мне пользу
Функция list.index(x) возвращает индекс в списке первого элемента, значение которого равно x.
Есть есть функция list_func_index(), аналогичная функции index(), которая имеет функцию f() в качестве параметра. Функция f() выполняется для каждого...
Я пытаюсь создать программу, которая выполняет несколько операций, связанных с таймером, в Python, и мне нужно сделать так, чтобы Asyncio создавал задачу (не дожидаясь ее), вызывая другую функцию с помощью asyncio.get_event_loop().create_task(...
Я пытаюсь создать программу, которая выполняет несколько операций, связанных с таймером, в Python, и мне нужно сделать так, чтобы Asyncio создавал задачу (не дожидаясь ее), вызывая другую функцию с помощью asyncio.get_event_loop().create_task(...
Я пытаюсь настроить проект с конфигурацией jar с несколькими выпусками для поддержки API Java более высоких версий. В настоящее время весь код собран и выпущен с использованием Java 11. Мы хотим, чтобы пользователи с Java 22 могли использовать...