bobocep.cep.engine.producer.producer.BoboProducer

class bobocep.cep.engine.producer.producer.BoboProducer(phenomena: List[BoboPhenomenon], gen_event_id: BoboGenEventID, gen_timestamp: BoboGenTimestamp, max_size: int = 0)[source]

Bases: BoboEngineTask, BoboProducerPublisher, BoboDeciderSubscriber

A producer task.

__init__(phenomena: List[BoboPhenomenon], gen_event_id: BoboGenEventID, gen_timestamp: BoboGenTimestamp, max_size: int = 0)[source]
Parameters:
  • phenomena – List of phenomena.

  • gen_event_id – Event ID generator.

  • gen_timestamp – Timestamp generator.

  • max_size – Maximum queue size. Default: 0 (unbounded).

close() None[source]

Closes the Producer.

is_closed() bool[source]
Returns:

True if Producer is closed; False otherwise.

on_decider_update(completed: List[BoboRunSerial], halted: List[BoboRunSerial], updated: List[BoboRunSerial], local: bool) None[source]
Parameters:
  • completed – Completed runs.

  • halted – Halted runs.

  • updated – Updated runs.

  • localTrue if the Decider update occurred locally; False if the update occurred on a remote (distributed) instance.

size() int[source]
Returns:

Queue size.

subscribe(subscriber: BoboProducerSubscriber)[source]
Parameters:

subscriber – Subscriber to Producer data.

update() bool[source]
Returns:

True if an internal update occurred; False otherwise.