def with_service(service: str, connector: RabbitMqConnector = None):
     connector = RabbitMqConnector() if not connector else connector
     return RabbitMqEventConfigurer(
         connector,
         DEFAULT_ORGANIZATION,
         service,
         QueueConfig.default(default_retry_ttl=10),
     )
 def with_ttl_1s(connector: RabbitMqConnector = None):
     connector = RabbitMqConnector() if not connector else connector
     return RabbitMqEventConfigurer(
         connector,
         DEFAULT_ORGANIZATION,
         DEFAULT_SERVICE,
         QueueConfig.default(default_retry_ttl=1000),
     )
 def with_specific_queue_config(
     specific_queue_config: SpecificQueueConfig,
     default_retry_ttl: int,
     default_main_ttl: int,
 ):
     return QueueConfig(
         default_retry_ttl=default_retry_ttl,
         default_main_ttl=default_main_ttl,
         specific_queue_configs={"specific": specific_queue_config},
     )
Beispiel #4
0
 def __init__(
     self,
     connector: RabbitMqConnector,
     organization: str,
     service: str,
     queue_config: QueueConfig = QueueConfig.default(),
     use_store_queues: bool = True,
 ):
     self._use_store_queues = use_store_queues
     self.event_subscribers_configurer = RabbitMqEventSubcribersConfigurer(
         connector, organization, service, queue_config)
     self.event_store_configurer = RabbitMqEventStoreConfigurer(
         connector, organization, service, queue_config)
Beispiel #5
0
    def from_dict(kdict):
        event_subscribers = None
        queues_subscribers = None
        store_queue_subscriber = None

        events = kdict.get("events")
        queues = kdict.get("queues")

        retry_ttl = DEFAULT_QUEUE_RETRY_TTL
        main_ttl = DEFAULT_QUEUE_RETRY_TTL
        queue_config = QueueConfig.default(retry_ttl, main_ttl)

        if events:
            retry_ttl = events.get("retry_ttl", DEFAULT_QUEUE_RETRY_TTL)
            main_ttl = events.get("retry_ttl", DEFAULT_QUEUE_RETRY_TTL)
            queue_config = QueueConfig.default(retry_ttl, main_ttl)

            dict_events_subscribers = events.get("subscribers")
            if dict_events_subscribers:
                event_subscribers = []
                for src_event_name, event_info in dict_events_subscribers.items(
                ):
                    handlers_names = check_list_or_str_item(
                        event_info, "handlers", typename="EventHandler")

                    event_name = get_event_name(src_event_name)
                    event_version = event_info.get("version", 1)
                    handlers = get_handlers(handlers_names, kdict)

                    event_subscribers.append(
                        EventSubscriber(
                            event_name=event_name,
                            event_version=event_version,
                            handlers=handlers,
                        ))

        if queues:
            str_store_queue_subscriber = queues.get("store")
            if str_store_queue_subscriber:
                store_queue_subscriber = get_handlers(
                    [str_store_queue_subscriber], kdict)[0]

            dict_queues_subscribers = queues.get("subscribers")
            if dict_queues_subscribers:
                queues_subscribers = {}
                for queue_name in dict_queues_subscribers.keys():
                    handlers_names = check_list_or_str_item(
                        dict_queues_subscribers,
                        queue_name,
                        typename="QueueHandler")
                    handlers = get_handlers(handlers_names, kdict)
                    queues_subscribers[queue_name] = handlers

            specific_queues_config = queues.get("specific_config")
            if specific_queues_config:
                queue_config = QueueConfig.from_dict(specific_queues_config,
                                                     retry_ttl, main_ttl)

        return ConfigEvents(
            organization=events.get("organization"),
            service=events.get("service"),
            publish_deploy_event=events.get("publish_deploy_event"),
            consumer_verbose=events.get("consumer_verbose", False),
            use_store_queues=events.get("use_store_queues", True),
            retry_ttl=retry_ttl,
            main_ttl=main_ttl,
            max_retries=events.get("max_retries", 5),
            message_broker=events.get("message_broker", "not_implemented"),
            event_subscribers=event_subscribers,
            store_queue_subscriber=store_queue_subscriber,
            queues_subscribers=queues_subscribers,
            chaos=RabbitMqEventChaos(),
            queue_config=queue_config,
        )
 def default():
     return QueueConfig.default()
 def with_ttl_10():
     return QueueConfig.default(default_retry_ttl=10, default_main_ttl=10)