Найти - Пользователи
Полная версия: помогите с "фонофым" потоком или процессом или еще как это называется..
Начало » Python для новичков » помогите с "фонофым" потоком или процессом или еще как это называется..
1 2 3
PEHDOM
ivin тут нужно смотреть что конкретно делают ваши“фоновые задачи”, есть подозрение что они не завершаются вовремя(или вообще), вот и получаете со временем “maximum number of running instances reached”, срабатывает “защита от дурака” чтобы вы не заспавнили стотыщмилленов потоков и не повесили компьютер.
ivin
PEHDOM
нужно смотреть что конкретно делают ваши“фоновые задачи”,
дык в стандартном примере в крайнем посте #10 ни чего они такого не не делают
PEHDOM
ivin
дык в стандартном примере в крайнем посте #10 ни чего они такого не не делают
а через какое время оно вам выбрасывает maximum number of running instances reached? я вот запустил вчера пример часов в 5-ть, до сих пор работает…
ivin
код
 from datetime import datetime
import time
import os
from apscheduler.schedulers.background import BackgroundScheduler
def tick():
    print('Tick! The time is: %s' % datetime.now())
if __name__ == '__main__':
    scheduler = BackgroundScheduler()
    scheduler.add_job(tick, 'interval', seconds = 3)
    scheduler.start()
    print('Press Ctrl+{0} to exit'.format('Break' if os.name == 'nt' else 'C'))
    try:
        # Это здесь для имитации активности приложения (которая поддерживает основной поток).
        while True:
#            time.sleep(1)
            x = input('>>>')
            print ('работа проги -',x)
    except (KeyboardInterrupt, SystemExit):
        # Строго не требуется, если включен демонический режим, но его следует делать, если это возможно
        scheduler.shutdown()

вот:
Python 3.6.3 (v3.6.3:2c5fed8, Oct 3 2017, 17:26:49) on win32
Type “copyright”, “credits” or “license()” for more information.
>>>
RESTART: C:\Google Диск\Кодинг\Проба пера\Многопоточность\cheduler_proba.py
Press Ctrl+Break to exit
>>>ку
работа проги - ку
>>>ку
Tick! The time is: 2020-02-06 17:12:37.652356работа проги -
ку
>>>ук
работа проги - ук
>>>ку
Tick! The time is: 2020-02-06 17:12:40.660528Execution of job "tick (trigger: interval, next run at: 2020-02-06 17:12:43 +07)“ skipped: maximum number of running instances reached (1)работа проги -

ку
>>>

вот еще:
>>>asdv
Tick! The time is: 2020-02-06 17:34:41.226060
работа проги -
asdv
>>>sadv

работа проги - sadv
>>>dsfv
Tick! The time is: 2020-02-06 17:34:44.224231Execution of job ”tick (trigger: interval, next run at: 2020-02-06 17:34:47 +07)“ skipped: maximum number of running instances reached (1)
работа проги -

dsfv
>>>dsfvdfvd
Tick! The time is: 2020-02-06 17:34:56.889956Execution of job ”tick (trigger: interval, next run at: 2020-02-06 17:34:59 +07)“ skipped: maximum number of running instances reached (1)
работа проги -

dsfvdfvd
>>>dsfvfdz

работа проги - dsfvfdz
>>>dsafvdf
Run time of job ”tick (trigger: interval, next run at: 2020-02-06 17:35:02 +07)“ was missed by 0:00:01.321964
работа проги -
Execution of job ”tick (trigger: interval, next run at: 2020-02-06 17:35:14 +07)" skipped: maximum number of running instances reached (1)dsafvdf

>>>

PEHDOM
 RESTART: C:\Google Диск\Кодинг\Проба пера\Многопоточность\cheduler_proba.py 
хмм а это откудова?
ivin
это просто путь где лежит код
RESTART: C:\Google Диск\Кодинг\Проба пера\Многопоточность\cheduler_proba.py
PEHDOM
ivin
это просто путь где лежит код
это я понимаю, но что он делает в выводе консоли пайтона? В вашем коде нет ни одной строчки которая бы выводила подобное сообщение. Следовательно код который вы привели на форуме и код вывод которого вы привели отличаются. а ошибка у вас простая: предыдущая таска не завершилась.

ivin
эта строчка (полное имя запускаемого файла)выводится всегда при запуске кода из IDLE Python 3.6
PEHDOM
предыдущая таска не завершилась.
и как сделать чебы завершалось? код -стандартный пример
PEHDOM
ivin
эта строчка (полное имя запускаемого файла)выводится всегда при запуске кода из IDLE Python 3.6
первым дело запустите код без IDLE, из консоли :
python D:\путь\к\файлу\файл.py
есть подозрение что это IDLE виноват.
если не поможет то нужно копать глубже. Для этого нужно понимать что таки происходит внутрях вашего шедулера, что мешает таске отработать.
Судя по всему проблема у вас локальная, потому как у меня за 24 часа работы вышеприведенного кода, такое ни разу не выскочило.

Можно включить логирование чтобы посмотреть что там в шедулере происходит:
https://apscheduler.readthedocs.io/en/latest/userguide.html#troubleshooting

или просматривать события шедулера на предмет таска завершилась или упала.
https://apscheduler.readthedocs.io/en/latest/userguide.html#scheduler-events

можно поднять макс колличество инстансов,
https://apscheduler.readthedocs.io/en/latest/userguide.html#missed-job-executions-and-coalescing

В кокнце концов уельичить время с 3-х секунд до 10 и посмотреть что будет.

ЗЫ IDLE никто не пользуется, разве что вы на марсе окажетесь и ничего кроме IDLE больше у вас не будет.
ivin
PEHDOM
ЗЫ IDLE никто не пользуется
у меня нет времени и желания изучать проф редакторы, хотя PyCharm установлен конечно
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB