def __init__(self, instance_id, function_id, function_version, function_details, max_buffered_tuples, user_code, log_topic, pulsar_client): self.instance_config = InstanceConfig(instance_id, function_id, function_version, function_details, max_buffered_tuples) self.user_code = user_code self.queue = Queue.Queue(max_buffered_tuples) self.log_topic_handler = None if log_topic is not None: self.log_topic_handler = log.LogTopicHandler( str(log_topic), pulsar_client) self.pulsar_client = pulsar_client self.input_serdes = {} self.consumers = {} self.output_serde = None self.function_class = None self.function_purefunction = None self.producer = None self.exeuction_thread = None self.atmost_once = self.instance_config.function_details.processingGuarantees == Function_pb2.ProcessingGuarantees.Value( 'ATMOST_ONCE') self.atleast_once = self.instance_config.function_details.processingGuarantees == Function_pb2.ProcessingGuarantees.Value( 'ATLEAST_ONCE') self.auto_ack = self.instance_config.function_details.autoAck self.contextimpl = None self.total_stats = Stats() self.current_stats = Stats()
def __init__(self, instance_id, function_id, function_version, function_details, max_buffered_tuples, expected_healthcheck_interval, user_code, pulsar_client): self.instance_config = InstanceConfig(instance_id, function_id, function_version, function_details, max_buffered_tuples) self.user_code = user_code self.queue = queue.Queue(max_buffered_tuples) self.log_topic_handler = None if function_details.logTopic is not None and function_details.logTopic != "": self.log_topic_handler = log.LogTopicHandler( str(function_details.logTopic), pulsar_client) self.pulsar_client = pulsar_client self.input_serdes = {} self.consumers = {} self.output_serde = None self.function_class = None self.function_purefunction = None self.producer = None self.exeuction_thread = None self.atmost_once = self.instance_config.function_details.processingGuarantees == Function_pb2.ProcessingGuarantees.Value( 'ATMOST_ONCE') self.atleast_once = self.instance_config.function_details.processingGuarantees == Function_pb2.ProcessingGuarantees.Value( 'ATLEAST_ONCE') self.auto_ack = self.instance_config.function_details.autoAck self.contextimpl = None self.total_stats = Stats() self.current_stats = Stats() self.stats = Stats() self.last_health_check_ts = time.time() self.timeout_ms = function_details.source.timeoutMs if function_details.source.timeoutMs > 0 else None self.expected_healthcheck_interval = expected_healthcheck_interval
def __init__(self, instance_id, function_id, function_version, function_details, max_buffered_tuples, expected_healthcheck_interval, user_code, pulsar_client, secrets_provider, cluster_name, state_storage_serviceurl): self.instance_config = InstanceConfig(instance_id, function_id, function_version, function_details, max_buffered_tuples) self.user_code = user_code # set queue size to one since consumers already have internal queues. Just use queue to communicate message from # consumers to processing thread self.queue = queue.Queue(1) self.log_topic_handler = None if function_details.logTopic is not None and function_details.logTopic != "": self.log_topic_handler = log.LogTopicHandler( str(function_details.logTopic), pulsar_client) self.pulsar_client = pulsar_client self.state_storage_serviceurl = state_storage_serviceurl self.input_serdes = {} self.consumers = {} self.output_serde = None self.function_class = None self.function_purefunction = None self.producer = None self.execution_thread = None self.atmost_once = self.instance_config.function_details.processingGuarantees == Function_pb2.ProcessingGuarantees.Value( 'ATMOST_ONCE') self.atleast_once = self.instance_config.function_details.processingGuarantees == Function_pb2.ProcessingGuarantees.Value( 'ATLEAST_ONCE') self.manual = self.instance_config.function_details.processingGuarantees == Function_pb2.ProcessingGuarantees.Value( 'MANUAL') self.auto_ack = self.instance_config.function_details.autoAck self.contextimpl = None self.last_health_check_ts = time.time() self.timeout_ms = function_details.source.timeoutMs if function_details.source.timeoutMs > 0 else None self.expected_healthcheck_interval = expected_healthcheck_interval self.secrets_provider = secrets_provider self.state_context = state_context.NullStateContext() self.metrics_labels = [ function_details.tenant, "%s/%s" % (function_details.tenant, function_details.namespace), function_details.name, instance_id, cluster_name, "%s/%s/%s" % (function_details.tenant, function_details.namespace, function_details.name) ] self.stats = Stats(self.metrics_labels)