models.Session includes some methods which schedule future tasks with Freeswitch.
The details of how such tasks are cancelled or otherwise handled should be wrapped in an appropriate concurrent.futures.Future or asyncio.Future much like how Client.bgapi() returns instances our hand rolled future-like Job type. Maybe a Task is an even better analogue?
Further, we should adjust our current Job to be compatible with the new interface as it was originally based off multiprocessing.AsyncResult.
models.Session
includes some methods which schedule future tasks with Freeswitch.The details of how such tasks are cancelled or otherwise handled should be wrapped in an appropriate
concurrent.futures.Future
orasyncio.Future
much like howClient.bgapi()
returns instances our hand rolled future-likeJob
type. Maybe aTask
is an even better analogue?Further, we should adjust our current
Job
to be compatible with the new interface as it was originally based offmultiprocessing.AsyncResult
.