BaseUpdateProcessor¶
- class telegram.ext.BaseUpdateProcessor(max_concurrent_updates)[source]¶
Bases:
contextlib.AbstractAsyncContextManager
,ABC
An abstract base class for update processors. You can use this class to implement your own update processor.
Instances of this class can be used as asyncio context managers, where
async with processor: # code
is roughly equivalent to
try: await processor.initialize() # code finally: await processor.shutdown()
Available In
See also
__aenter__()
and__aexit__()
.See also
Added in version 20.4.
- Parameters:
max_concurrent_updates (
int
) – The maximum number of updates to be processed concurrently. If this number is exceeded, new updates will be queued until the number of currently processed updates decreases.- Raises:
ValueError – If
max_concurrent_updates
is a non-positive integer.
- async __aenter__()[source]¶
Asynchronous context manager which
initializes
the Processor.- Returns:
The initialized Processor instance.
- Raises:
Exception – If an exception is raised during initialization,
shutdown()
is called in this case.
- async __aexit__(exc_type, exc_val, exc_tb)[source]¶
Asynchronous context manager which
shuts down
the Processor.
- abstract async do_process_update(update, coroutine)[source]¶
Custom implementation of how to process an update. Must be implemented by a subclass.
Warning
This method will be called by
process_update()
. It should not be called manually.
- abstract async initialize()[source]¶
Initializes the processor so resources can be allocated. Must be implemented by a subclass.
See also
- property max_concurrent_updates[source]¶
The maximum number of updates that can be processed concurrently.
- Type:
- final async process_update(update, coroutine)[source]¶
Calls
do_process_update()
with a semaphore to limit the number of concurrent updates.