/
Flyer
/
library-api
Обзор
Документация
Войти
/
Flyer
/
library-api
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
sales_analytics/generator.py
31 строка
899 B
Alex
Task 9: Streaming and batch sales analytics
02 июн 2026, 19:48
02 июн 2026, 19:48
febbadd
Код
Авторство
О чём код?
import json import random import time from datetime import datetime, timezone import redis REDIS_HOST = "localhost" REDIS_PORT = 6379 STREAM_KEY = "sales" MAX_BOOK_ID = 5 EVENTS_PER_SECOND = 2 # для демонстрации можно увеличить до 5 r = redis.Redis(host=REDIS_HOST, port=REDIS_PORT, decode_responses=True) def generate_event(): return { "book_id": random.randint(1, MAX_BOOK_ID), "price": round(random.uniform(100, 1000), 2), "timestamp": datetime.now(timezone.utc).isoformat() } if __name__ == "__main__": print(f"Starting sales event generator on 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.")