app¶
- class mersal.core.app.Mersal[source]¶
Bases:
object- __init__(name: str, handler_activator: HandlerActivator, transport: Transport | None = None, pipeline_invoker: PipelineInvoker | None = None, router: Router | None = None, worker_factory: WorkerFactory | None = None, subscription_storage: SubscriptionStorage | None = None, topic_name_convention: TopicNameConvention | None = None, on_startup_hooks: Sequence[Callable[[], Any | Awaitable[Any]]] | None = None, on_shutdown_hooks: Sequence[Callable[[], Any | Awaitable[Any]]] | None = None, retry_strategy_settings: RetryStrategySettings | None = None, error_tracker: ErrorTracker | None = None, error_handler: ErrorHandler | None = None, fail_fast_checker: FailFastChecker | None = None, fail_fast_exceptions: Sequence[type[Exception]] | None = None, plugins: Sequence[Plugin] | None = None, idempotency: IdempotencyConfig | None = None, saga: SagaConfig | type[Empty] | None = None, serializer: Serializer | None = None, message_body_serializer: Serializer | None = None, message_headers_serializer: Serializer | None = None, default_router_registration: DefaultRouterRegistrationConfig | None = None, autosubscribe: AutosubscribeConfig | type[Empty] | None = None, unit_of_work: UnitOfWorkConfig | None = None, outbox: OutboxConfig | None = None, pdb_on_exception: bool | None = None, message_id_generator: MessageIdGenerator | None = None, max_parallelism: int = 1, stop_grace_period: float | None = None, logging_config: LoggingConfig | None = None, debug: bool = False, send_only: bool = False)[source]¶
Initializes the Mersal app.
- Parameters:
name¶ – name of Mersal app, useful in logging.
autosubscribe¶ – configuration for the autosubcription plugin.
handler_activator¶ – HandlerActivator,
transport¶ – Transport | None = None,
pipeline_invoker¶ – PipelineInvoker | None = None,
router¶ – Router | None = None,
worker_factory¶ – WorkerFactory | None = None,
subscription_storage¶ – SubscriptionStorage | None = None,
topic_name_convention¶ – TopicNameConvention | None = None,
on_startup_hooks¶ – Sequence[LifespanHook] | None = None,
on_shutdown_hooks¶ – Sequence[LifespanHook] | None = None,
retry_strategy_settings¶ – RetryStrategySettings | None = None,
error_tracker¶ – ErrorTracker | None = None,
error_handler¶ – ErrorHandler | None = None,
fail_fast_checker¶ – FailFastChecker | None = None,
fail_fast_exceptions¶ – Sequence[type[Exception]] | None = None,
plugins¶ – Sequence[Plugin] | None = None,
idempotency¶ – IdempotencyConfig | None = None,
saga¶ – SagaConfig | EmptyType | None = None,
serializer¶ – Serializer | None = None,
message_body_serializer¶ – MessageBodySerializer | None = None,
message_headers_serializer¶ – MessageHeadersSerializer | None = None,
default_router_registration¶ – DefaultRouterRegistrationConfig | None = None,
unit_of_work¶ – UnitOfWorkConfig | None = None,
outbox¶ – OutboxConfig | None = None,
pdb_on_exception¶ – bool | None = None,
message_id_generator¶ – MessageIdGenerator | None = None,
max_parallelism¶ – number of messages to be handled in parallel.
stop_grace_period¶ – seconds in-flight message handlers are given to finish during shutdown before being cancelled (their transaction contexts are still closed). None (the default) waits for them indefinitely.
logging_config¶ – configuration for the logging system.
debug¶ – controls debug mode.
send_only¶ – marks this app as send-only - it will never receive messages, so no worker is created and transports can skip setting up receive-side resources (e.g. an input queue/subscription).
- async publish(event_message: Any, headers: Mapping[str, Any] | None = None) None[source]¶
Publish an event with optional headers.
- async send(command_message: Any, headers: Mapping[str, Any] | None = None, addresses: set[str] | None = None) None[source]¶
Send a message to an address obtained from the configured router.