/
Flyer
/
library-api
Обзор
Документация
Войти
/
Flyer
/
library-api
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
task-4
data_pipelines/generator.py
36 строк
1 KB
Alex
Task 4: Lambda and Kappa pipelines for book views
31 май 2026, 19:12
31 май 2026, 19:12
a88a1b6
Код
Авторство
О чём код?
import json import random import time from datetime import datetime, timezone import redis import sys sys.stdout.reconfigure(line_buffering=True) # Настройки REDIS_HOST = "localhost" REDIS_PORT = 6379 STREAM_KEY = "book_views" # ключ Redis Stream MAX_BOOK_ID = 5 # число книг в системе MAX_USER_ID = 10 # число пользователей EVENTS_PER_SECOND = 5 # интенсивность генерации r = redis.Redis(host=REDIS_HOST, port=REDIS_PORT, decode_responses=True) def generate_event(): return { "user_id": random.randint(1, MAX_USER_ID), "book_id": random.randint(1, MAX_BOOK_ID), "timestamp": datetime.now(timezone.utc).isoformat() } if __name__ == "__main__": print(f"Starting generator, sending to stream '{STREAM_KEY}'...") try: while True: event = generate_event() r.xadd(STREAM_KEY, event) print(f"Sent: {event}") time.sleep(1 / EVENTS_PER_SECOND) except KeyboardInterrupt: print("Generator stopped.")