What would you like to happen?
Currently, hop-server.sh supports a -k flag to stop the server, but it acts more as a kill switch than a graceful shutdown. In containerized environments like Kubernetes, when a Pod is being updated or scaled down, the platform sends a SIGTERM signal to the process.
Without a graceful shutdown mechanism, ongoing pipelines and workflows are interrupted abruptly, which may lead to data inconsistency or incomplete processing.
Proposed Solution / Requirements:
Signal Handling: Allow Hop Server to catch SIGTERM signals and trigger a shutdown sequence.
Wait for Completion: Provide an option/parameter to allow running pipelines/workflows to finish their current tasks within a configurable timeout period before the server process exits.
Reject New Tasks: Once the shutdown sequence is initiated, the server should stop accepting new execution requests.
Use Case: This feature is critical for users running Apache Hop in CI/CD pipelines or cloud-native environments (K8s) to ensure high availability and data integrity during routine deployments and updates.
Issue Priority
Priority: 3
Issue Component
Component: Hop Server