Not sure I understand the question.  The InstructorTask object here is in memory, not necessarily on disk.  As a non-email task is running, its progress is written to the Celery result object (memcache=fast) but not to the InstructorTask object (DB=slow).  So when we want the latest progress for such a task, we get it from the Celery result object.  However, for subtasks (like bulk email), there is no progress written to Celery.  Instead it's written to the InstructorTask, so it does not need updating from the Celery result object.