def run(self, timestamp, time_step): """Simulates riders entering through the turnstile.""" num_entries = self.turnstile_hardware.get_entries(timestamp, time_step) logger.debug("turnstile kafka integration") for i in range(num_entries): Producer.produce( self, topic=self.topic_name, key={"timestamp": self.time_millis()}, value={ "station_id": self.station.station_id, "station_name": self.station.name, "line": self.station.color, }, )
def _init_producer_singleton(cls): if cls._producer is None: key_schema = avro.load(f"{Path(__file__).parents[0]}/schemas/arrival_key.json") value_schema = avro.load(f"{Path(__file__).parents[0]}/schemas/arrival_value.json") cls._producer = Producer( 'com.udacity.project.chicago_transportation.arrival', key_schema=key_schema, value_schema=value_schema )
def update_producer(id): name = request.form["name"] phone_number = request.form["phone_number"] email = request.form["email"] country = request.form["country"] region = request.form["region"] producer = Producer(name, phone_number, email, country, region, id) producer_repository.update(producer) return redirect("/producers")
def select_all(): producers = [] sql = "SELECT * FROM producers" results = run_sql(sql) for row in results: producer = Producer(row['name'], row['phone_number'], row['email'], row['country'], row['region'], row['id']) producers.append(producer) return producers
def select(id): producer = None sql = """ SELECT * FROM producers WHERE id = %s """ values = [id] result = run_sql(sql, values)[0] if result is not None: producer = Producer(result['name'], result['phone_number'], result['email'], result['country'], result['region'], result['id']) return producer
def configure_connector(): """Starts and configures the Kafka Connect connector""" logging.debug("creating or updating kafka connect connector...") # create required topic for sending data to Kafka Producer(topic_name=CtaTopics.STATIONS, num_partitions=1) resp = requests.get(f"{KAFKA_CONNECT_URL}/{CONNECTOR_NAME}") if resp.status_code == 200: logging.debug("connector already created skipping recreation") return resp = requests.post( KAFKA_CONNECT_URL, headers={"Content-Type": "application/json"}, data=json.dumps({ "name": CONNECTOR_NAME, "config": { "connector.class": "io.confluent.connect.jdbc.JdbcSourceConnector", "key.converter": "org.apache.kafka.connect.json.JsonConverter", "key.converter.schemas.enable": "false", "value.converter": "org.apache.kafka.connect.json.JsonConverter", "value.converter.schemas.enable": "false", "batch.max.rows": 500, "connection.url": Connections.POSTGRES.get("connection.url"), "connection.user": Connections.POSTGRES.get("user"), "connection.password": Connections.POSTGRES.get("password"), "table.whitelist": TABLE_NAME, "mode": "incrementing", "incrementing.column.name": "stop_id", "topic.prefix": f"{TOPIC_PREFIX}.", "poll.interval.ms": 60000, }, }), ) ## Ensure a healthy response was given resp.raise_for_status() logging.debug("connector created successfully")
import pdb from models.wine import Wine from models.producer import Producer import repositories.wine_repository as wine_repository import repositories.producer_repository as producer_repository wine_repository.delete_all() producer_repository.delete_all() producer1 = Producer("Cloudy Bay", "6435209147", "*****@*****.**", "New Zealand", "Marlborough") producer_repository.save(producer1) producer2 = Producer("Châteaux Codéclan", "1312902600", "*****@*****.**", "Scotland", "Edinburgh") producer_repository.save(producer2) producer3 = Producer("Penfolds", "1300095930", "*****@*****.**", "Australia", "Barossa Valley") producer_repository.save(producer3) producer4 = Producer("Campo Viejo", "34941279900", "*****@*****.**", "Spain", "Rioja") producer_repository.save(producer4) producer5 = Producer("Royal Tokaji", "3647548500", "*****@*****.**", "Hungary", "Tokaj") producer_repository.save(producer5) producer6 = Producer("Pol Roger", "3332659800", "*****@*****.**", "France", "Champagne") producer_repository.save(producer6) producer7 = Producer("Freixenet", "3355191", "*****@*****.**", "Italy", "Veneto") producer_repository.save(producer7)
def test_producer(self): Producer("topic_test", "schema")