View Source Venomous.SnakeManager (Venomous v1.0.0)
Manager for brave 🐍 workers
This module manages the snake workers, ensuring that inactive workers are cleaned up periodically.
Main call :get_ready_snake retrieves/spawns a Venomous.SnakeWorker with :retrieved status.
Workers with status :ready and :retrieved are considered inactive and will be cleared up by main process loop running :clean_inactive_workers if they exceed their given TTL
Workers with :retrieved retrieved again until they are used.
Configuration
The following configurations are retrieved from :venomous :snake_manager Application env:
erlport_encoder: %{module: atom(), func: atom(), args: list(any())}: Optional :erlport encoder/decoder python function for converting types. The function can also provide any callbacks from :erlport documentation like .cast() message handlersnake_ttl_minutes: non_neg_integer(): Time-to-live for a Snake in minutes. Default is 15 min.perpetual_workers: non_neg_integer(): Number of Snakes to keep alive perpetually. Default is 10.cleaner_interval: non_neg_integer(): Interval in milliseconds for cleaning up inactive Snakes. Default is 60_000 ms.
Summary
Functions
Returns a specification to start this module under a supervisor.
Callback implementation for GenServer.handle_continue/2.
Callback implementation for GenServer.init/1.
Functions
Returns a specification to start this module under a supervisor.
See Supervisor.
Callback implementation for GenServer.handle_continue/2.
Callback implementation for GenServer.init/1.