Python, график параллельных потоков с одним потоком для каждого метода - PullRequest
0 голосов
/ 16 февраля 2019

Как я могу запустить эти две задачи параллельно, но если поток с именем метода еще не завершен, просто пропустите этот метод до следующей итерации расписания?

Потому что теперь он создает новый потокдля того же метода, пока он работает.

def task1:
   #do task1

def task1:
   #do task2

def run_threaded(job_fn):
  job_thread = threading.Thread(target=job_fn)
  job_thread.start()


schedule.every(5).minutes.do(run_threaded, task1)
schedule.every(3).minutes.do(run_threaded, task2)

while True:
  schedule.run_pending()
  time.sleep(1)

1 Ответ

0 голосов
/ 16 февраля 2019

Разобрался с другим модулем под названием apscheduler .У него есть параметр max_instances: 1 и что-то вроде журнала

*Execution of job "task1 (trigger: interval[0:50:0], next run at: 2019-02-16 11:38:23 EET)" skipped: maximum number of running instances reached (1)*

scheduler = BackgroundScheduler (executors = executors, job_defaults = job_defaults)

scheduler.add_job(task1, 'interval', minutes=5)
scheduler.add_job(task2, 'interval', minutes=7)
scheduler.start()

You don 'Не нужно создавать threading. Thread , потому что модуль делает это за вас.Просто передайте свой метод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...