summaryrefslogtreecommitdiff
path: root/examples/jobstores/zookeeper.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/jobstores/zookeeper.py')
-rw-r--r--examples/jobstores/zookeeper.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/examples/jobstores/zookeeper.py b/examples/jobstores/zookeeper.py
new file mode 100644
index 0000000..12b3e42
--- /dev/null
+++ b/examples/jobstores/zookeeper.py
@@ -0,0 +1,33 @@
+"""
+This example demonstrates the use of the Zookeeper job store.
+On each run, it adds a new alarm that fires after ten seconds.
+You can exit the program, restart it and observe that any previous alarms that have not fired yet
+are still active. Running the example with the --clear switch will remove any existing alarms.
+"""
+
+from datetime import datetime, timedelta
+import sys
+import os
+
+from apscheduler.schedulers.blocking import BlockingScheduler
+
+
+def alarm(time):
+ print('Alarm! This alarm was scheduled at %s.' % time)
+
+
+if __name__ == '__main__':
+ scheduler = BlockingScheduler()
+ scheduler.add_jobstore('zookeeper', path='/example_jobs')
+ if len(sys.argv) > 1 and sys.argv[1] == '--clear':
+ scheduler.remove_all_jobs()
+
+ alarm_time = datetime.now() + timedelta(seconds=10)
+ scheduler.add_job(alarm, 'date', run_date=alarm_time, args=[datetime.now()])
+ print('To clear the alarms, run this example with the --clear argument.')
+ print('Press Ctrl+{0} to exit'.format('Break' if os.name == 'nt' else 'C'))
+
+ try:
+ scheduler.start()
+ except (KeyboardInterrupt, SystemExit):
+ pass