tobby48 5 jaren geleden
bovenliggende
commit
1ed814b0d1

+ 37
- 35
src/kr/co/swh/lecture/python/scene5/scheduler/SchedulerModule.py Bestand weergeven

@@ -1,35 +1,37 @@
1
-from apscheduler.jobstores.base import JobLookupError
2
-from apscheduler.schedulers.background import BackgroundScheduler
3
-import time
4
-
5
-class SchedulerTest:
6
-    def __init__(self):
7
-        self.sched = BackgroundScheduler()
8
-        self.sched.start()
9
-        self.job_id = ''
10
-
11
-    def __del__(self):
12
-        print("__del__ call")
13
-        self.shutdown()
14
-
15
-    def shutdown(self):
16
-        self.sched.shutdown()
17
-
18
-    def kill_scheduler(self, job_id):
19
-        try:
20
-            self.sched.remove_job(job_id)
21
-        except JobLookupError as err:
22
-            print("fail to stop Scheduler: {err}".format(err=err))
23
-            return
24
-
25
-    def hello(self, type, job_id):
26
-        print("%s Scheduler process_id[%s] : %d" % (type, job_id, time.localtime().tm_sec))
27
-
28
-    def scheduler(self, type, job_id):
29
-        print("{type} Scheduler Start".format(type=type))
30
-        if type == 'interval':
31
-            self.sched.add_job(self.hello, type, seconds=10, id=job_id, args=(type, job_id))
32
-        elif type == 'cron':
33
-            self.sched.add_job(self.hello, type, day_of_week='mon-sun',
34
-                               hour='0-23', second='*/1',
35
-                               id=job_id, args=(type, job_id))
1
+from apscheduler.jobstores.base import JobLookupError
2
+from apscheduler.schedulers.background import BackgroundScheduler
3
+import time
4
+
5
+class SchedulerTest:
6
+    def __init__(self):
7
+        self.sched = BackgroundScheduler()
8
+        self.job_id = ''
9
+
10
+    def __del__(self):
11
+        print("__del__ call")
12
+        self.shutdown()
13
+        
14
+    def start(self):
15
+        self.sched.start()
16
+
17
+    def shutdown(self):
18
+        self.sched.shutdown()
19
+
20
+    def kill_scheduler(self, job_id):
21
+        try:
22
+            self.sched.remove_job(job_id)
23
+        except JobLookupError as err:
24
+            print("fail to stop Scheduler: {err}".format(err=err))
25
+            return
26
+
27
+    def hello(self, type, job_id):
28
+        print("%s Scheduler process_id[%s] : %d" % (type, job_id, time.localtime().tm_sec))
29
+
30
+    def scheduler(self, type, job_id):
31
+        print("{type} Scheduler Start".format(type=type))
32
+        if type == 'interval':
33
+            self.sched.add_job(self.hello, type, seconds=10, id=job_id, args=(type, job_id))
34
+        elif type == 'cron':
35
+            self.sched.add_job(self.hello, type, day_of_week='mon-sun',
36
+                               hour='0-23', second='*/1',
37
+                               id=job_id, args=(type, job_id))

BIN
src/kr/co/swh/lecture/python/scene5/scheduler/__pycache__/SchedulerModule.cpython-37.pyc Bestand weergeven


+ 19
- 18
src/kr/co/swh/lecture/python/scene5/scheduler/interval-test.py Bestand weergeven

@@ -1,19 +1,20 @@
1
-from SchedulerModule import SchedulerTest
2
-import time
3
-
4
-if __name__ == '__main__':
5
-    scheduler = SchedulerTest()
6
-    scheduler.scheduler('interval', "2")
7
-
8
-    count = 0
9
-    while True:
10
-        '''
11
-        count 제한할 경우 아래와 같이 사용
12
-        '''
13
-        print("Running main process")
14
-        time.sleep(1)
15
-        count += 1
16
-        if count == 15:
17
-            scheduler.kill_scheduler("2")
18
-            print("Kill interval Scheduler")
1
+from SchedulerModule import SchedulerTest
2
+import time
3
+
4
+if __name__ == '__main__':
5
+    scheduler = SchedulerTest()
6
+    scheduler.scheduler('interval', "2")
7
+    scheduler.start()
8
+    
9
+    count = 0
10
+    while True:
11
+        '''
12
+        count 제한할 경우 아래와 같이 사용
13
+        '''
14
+        print("Running main process")
15
+        time.sleep(1)
16
+        count += 1
17
+        if count == 15:
18
+            scheduler.kill_scheduler("2")
19
+            print("Kill interval Scheduler")
19 20
             break

+ 2
- 1
src/kr/co/swh/lecture/python/scene5/scheduler/scheduler-1.py Bestand weergeven

@@ -8,4 +8,5 @@ sched = BackgroundScheduler()
8 8
 sched.add_job(tick1, "interval", seconds=2)
9 9
 sched.start()
10 10
 
11
-time.sleep(100)
11
+time.sleep(100)
12
+

+ 8
- 0
src/kr/co/swh/lecture/python/scene5/scheduler/scheduler-2.py Bestand weergeven

@@ -0,0 +1,8 @@
1
+import time
2
+
3
+def tick1():
4
+    print("tick!!!")
5
+
6
+while True:
7
+    tick1()
8
+    time.sleep(1)