from myapp import app
from celery.exceptions import SoftTimeLimitExceeded
@app.task
def mytask():
try:
do_work()
except SoftTimeLimitExceeded:
clean_up_in_a_hurry()
Здесь do_work() это моя функция, и в ней нет никакого SoftTimeLimitExceeded. Как этот SoftTimeLimitExceeded "подсовывается" в блок try? Как эта магия работает?