Sfoglia il codice sorgente

1. add public func in timing. 2. add package upload to uplaod result to server

tangs 6 anni fa
parent
commit
b6a8bcfb12
2 ha cambiato i file con 79 aggiunte e 4 eliminazioni
  1. 26 4
      timing.py
  2. 53 0
      upload.py

+ 26 - 4
timing.py

@@ -40,11 +40,15 @@ class Timing:
         :param task_id: Unique task id.
         :return:
         """
+        element = None
         self.lock.acquire()
         if self.task.__contains__(task_id):
             element = self.task.pop(task_id)
-            return element
-        return None
+        self.lock.release()
+        return element
+
+    def set_interval(self, interval):
+        self.sleep_interval = interval
 
     def sleep(self):
         time.sleep(self.sleep_interval)
@@ -58,6 +62,24 @@ class Timing:
                 if interval - (now % interval) > 1:
                     continue
                 task_detail['func']()
-
-            self.sleep()
             self.lock.release()
+            self.sleep()
+
+
+defaultTiming = Timing()
+
+
+def add_task(task_id, name, interval, func, *args, **kwargs):
+    defaultTiming.add_task(task_id, name, interval, func, *args, **kwargs)
+
+
+def delete_task(task_id):
+    defaultTiming.delete_task(task_id)
+
+
+def set_interval(interval):
+    defaultTiming.set_interval(interval)
+
+
+def run():
+    defaultTiming.run()

+ 53 - 0
upload.py

@@ -0,0 +1,53 @@
+#!/usr/bin/env python
+# -*- coding:utf-8 -*-
+
+from threading import Lock
+import logging
+
+
+class Handle:
+    def __init__(self):
+        self.lock = Lock()
+        self.Q = []
+        self.max_item_length = 1000
+
+    def add_task(self, content):
+        if not isinstance(content, dict):
+            logging.warning('[HANDLE] add task content: %s but type is not dict', content)
+            return
+
+        self.lock.acquire()
+        content = self.content_format(content)
+        self.Q.append(content)
+        self.lock.release()
+
+    @staticmethod
+    def content_format(content):
+        if not content.__contains__('dev_ip'):
+            content['dev_ip'] = ''
+        if not content.__contains__('expr'):
+            content['expr'] = 1
+        if not content.__contains__('dev_id'):
+            content['dev_id'] = ''
+        if not content.__contains__('port'):
+            content['port'] = ''
+        if not content.__contains__('type'):
+            content['type'] = ''
+        if not content.__contains__('schema'):
+            content['schema'] = ''
+        if not content.__contains__('login_name'):
+            content['login_name'] = ''
+        if not content.__contains__('pwd'):
+            content['pwd'] = ''
+        if not content.__contains__('kpi'):
+            content['kpi'] = {}
+        return content
+
+    def to_file(self):
+        pass
+
+    def to_temp_file(self):
+        pass
+
+    def ftp_upload(self):
+        pass