Files
lmcache--lmcache/examples/runtime_plugins/scheduler_foo_plugin.py
T
2026-07-13 12:24:33 +08:00

47 lines
1.2 KiB
Python

#!/opt/venv/bin/python
# SPDX-License-Identifier: Apache-2.0
"""Example plugin for LMCache system
This plugin runs continuously and exits when parent process terminates"""
# Standard
import json
import os
import signal
import time
# First Party
from lmcache.integration.vllm.utils import lmcache_get_or_create_config
from lmcache.v1.config import LMCacheEngineConfig
# Graceful exit handler
def handle_exit(signum, frame):
print("Received termination signal, exiting...")
exit(0)
signal.signal(signal.SIGTERM, handle_exit)
role = os.getenv("LMCACHE_RUNTIME_PLUGIN_ROLE")
worker_id = os.getenv("LMCACHE_RUNTIME_PLUGIN_WORKER_ID")
worker_count = os.getenv("LMCACHE_RUNTIME_PLUGIN_WORKER_COUNT")
config_str = os.getenv("LMCACHE_RUNTIME_PLUGIN_CONFIG")
try:
config = LMCacheEngineConfig.from_json(config_str)
except json.JSONDecodeError as e:
print(f"Error parsing LMCACHE_RUNTIME_PLUGIN_CONFIG: {e}")
config = lmcache_get_or_create_config()
print(
f"Python plugin running with role: {role}, worker_id: {worker_id}, "
f"worker_count: {worker_count}"
)
print(f"Config: {config}")
# Main loop
loop_count = 0
while True:
print(f"Scheduler plugin is running... (loop_count: {loop_count})")
loop_count += 1
time.sleep(10)