@aquapendente

Как отменить задание apscheduler?

Всем привет. Я создаю работу функцией:

from apscheduler.schedulers.background import BackgroundScheduler

def start_note(date, note_id):
    sched = BackgroundScheduler()
    def activate(note_id):
        commands.note(note_id).activate()
        return schedule.CancelJob
    sched.add_job(activate, 'date', run_date=date + ":00", timezone="Europe/Moscow", args=[note_id], id=str(note_id))
    sched.start()

Где date - дата и время в которую нужно выполнить работу, а note_id - уникальный идентификатор.

После пользователь может отменить эту работу:

from apscheduler.schedulers.background import BackgroundScheduler

def remove_job(note_id):
    try:
        BackgroundScheduler.remove_job(str(note_id))
        return True
    except Exception as _ex:
        print(_ex)
        return False

Но код выдаёт ошибку remove_job() missing 1 required positional argument: 'self'
Как отменить работу зная только её id?
  • Вопрос задан
  • 403 просмотра
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Метод remove_job должен вызываться у объекта, а не класса.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы