Cleanup constructor
const
Cleanup()
Marks a method to be invoked after a pod is destroyed.
Jetleaf automatically detects methods annotated with @Cleanup
and calls them after pod shutdown or context close.
This is typically used for:
- Releasing resources (database connections, sockets, file handles).
- Stopping background workers.
- Flushing in-memory caches.
Rules
- Must be a no-arg method.
- Return type should be
void
orFuture<void>
. - Only applied to methods (not classes or fields).
Example — Synchronous Cleanup
@Service()
class CacheManager {
final _cache = <String, String>{};
void put(String key, String value) => _cache[key] = value;
@Cleanup()
void clearCache() {
print("Clearing cache after shutdown...");
_cache.clear();
}
}
Example — Asynchronous Cleanup
@Service()
class WorkerPool {
final _workers = <Worker>[];
@Cleanup()
Future<void> shutdownWorkers() async {
for (final worker in _workers) {
await worker.stop();
}
}
}
Implementation
const Cleanup();