Das ist ein Odoo Modul für die Verwaltung von Maschinen, Einweisungen für Nutzer in einer offenen Werkstatt / Fablab
Phase 1.4 abgeschlossen: Event Queue mit exponential backoff retry logic Neue Features: - event_queue.py: Thread-safe Queue mit Retry-Mechanismus * Exponential backoff: 2^retry_count, max 60s * Max 10 retries pro Event * Background-Thread für kontinuierliche Verarbeitung * Queue-Statistiken (pending, sent, failed, retry counts) - Event-UID Generation (UUID) in allen Events * session_started, session_heartbeat, session_ended, session_timeout * Ermöglicht Idempotenz in Odoo - MockOdooClient Failure-Simulation * mock_failure_rate (0.0-1.0) in config.yaml * Wirft Exceptions für Retry-Testing - Config-Erweiterungen * LoggingConfig.log_file (Optional[str]) * OdooConfig.mock_failure_rate (float, default 0.0) Änderungen: - main.py: Queue-Integration mit Background-Thread * on_event_generated() nutzt Queue statt direktem send * Graceful shutdown: Queue-Processing vor MQTT-Disconnect * Alte IotBridge-Klasse entfernt (duplicate code cleanup) - session_detector.py: event_uid zu allen Events hinzugefügt - odoo_client.py: MockOdooClient mit failure_rate Parameter Tests (alle PASSED): - Unit Tests: test_event_queue.py (13/13 passed) * QueuedEvent retry logic & exponential backoff * Queue operations (enqueue, statistics) * Successful send, retry scenarios, max retries exceeded - Integration Tests: test_retry_logic.py (2/2 passed in 48.29s) * test_retry_on_odoo_failure: Events werden bei Failures enqueued * test_eventual_success_after_retries: 50% failure → eventual success Bridge ist jetzt resilient gegen Odoo-Ausfälle! |
||
|---|---|---|
| .devcontainer | ||
| .gitea/workflows | ||
| .vscode | ||
| aspl_equipment_qrcode_generator | ||
| FEATURE_REQUEST | ||
| log | ||
| open_workshop_base | ||
| open_workshop_dokuwiki | ||
| open_workshop_employee_imagegenerator | ||
| open_workshop_mqtt | ||
| open_workshop_pos | ||
| open_workshop_pos_customer_display | ||
| open_workshop_report | ||
| .gitignore | ||
| open_workshop.code-workspace | ||
| README.md | ||
| todo.md | ||
Abhängigkeiten von maintenance erklären.