Python APSCheduler выдает исключение после удаления задания - PullRequest
0 голосов
/ 24 сентября 2019

Я добавляю работу в redis, и по завершении работы я добавил обработчик событий.В обработчике событий я возвращаю значение, на основе которого я удаляю идентификатор задания из хранилища.Он удаляется успешно, но немедленно выдает исключение.

Код

from datetime import datetime
from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.events import EVENT_JOB_EXECUTED
import logging
logging.basicConfig()

scheduler = BackgroundScheduler()
scheduler.add_jobstore('redis')
scheduler.start()

def tick():
    print('Tick! The time is: %s' % datetime.now())
    return 'success'

def removing_jobs(event):
    if event.retval == 'success':
        scheduler.remove_job(event.job_id)

scheduler.add_listener(removing_jobs, EVENT_JOB_EXECUTED)

try:
    count = 0 
    while True:
        count += 1
        time.sleep(10)
        job_ret = scheduler.add_job(tick, 'interval', id = str(count), seconds=10)
except (KeyboardInterrupt, SystemExit):
    scheduler.shutdown()

Исключение

Exception in thread APScheduler:
Traceback (most recent call last):
  File "/usr/lib/python3.5/threading.py", line 914, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.5/threading.py", line 862, in run
    self._target(*self._args, **self._kwargs)
  File "/.virtualenvs/py3/lib/python3.5/site-packages/apscheduler/schedulers/blocking.py", line 30, in _main_loop
    wait_seconds = self._process_jobs()
  File "/.virtualenvs/py3/lib/python3.5/site-packages/apscheduler/schedulers/base.py", line 995, in _process_jobs
    jobstore.update_job(job)
  File "/.virtualenvs/py3/lib/python3.5/site-packages/apscheduler/jobstores/redis.py", line 91, in update_job
    raise JobLookupError(job.id)
apscheduler.jobstores.base.JobLookupError: 'No job by the id of 1 was found'
...