Alarm
Introduction
The Alarm Extension provides the AlarmManager extended object, with easy mechanisms for handling long running operations that might timeout after a set amount of time.
API References:
Requirements
No external dependencies
Platform Support
Unix
Linux
macOS (Darwin)
Configuration
This extension does not rely on any application level configuration settings or meta options.
Usage
import time
from cement import App, CaughtSignal
class MyApp(App):
class Meta:
label = 'myapp'
exit_on_close = True
extensions = ['alarm']
with MyApp() as app:
try:
app.run()
app.alarm.set(3, "The operation timed out after 3 seconds!")
# do something that takes time to operate
time.sleep(5)
app.alarm.stop()
except CaughtSignal as e:
print(e.msg)
app.exit_code = 1
Last updated