From 1283d4f92edc3c327413699411308046fcddf8ac Mon Sep 17 00:00:00 2001 From: wactbprot <wactbprot@gmail.com> Date: Tue, 11 Sep 2018 14:26:28 +0200 Subject: [PATCH] loop, single works --- anselm.py | 20 +++++++++++++++----- anselm/system.py | 3 +-- anselm/worker.py | 47 +++++++++++++++++++++++++++++------------------ 3 files changed, 45 insertions(+), 25 deletions(-) diff --git a/anselm.py b/anselm.py index ced5118..c0b56be 100644 --- a/anselm.py +++ b/anselm.py @@ -63,12 +63,13 @@ class Anselm(System): self.result_col= 1 self.line_heigth = 28 - + self.long_line = 350 self.win = QWidget() + self.win.closeEvent = self.closeEvent self.grid = QGridLayout(self.win) add_device_bttn = QPushButton("add device", self.win) - add_device_bttn.setFixedSize(450, self.line_heigth) + add_device_bttn.setFixedSize(self.long_line, self.line_heigth) add_device_bttn.clicked.connect(self.add_device_line) self.add_widget_to_grid(add_device_bttn ,self.current_grid_line, self.add_device_btn_col) @@ -82,7 +83,8 @@ class Anselm(System): year_select_combo.currentIndexChanged.connect(lambda: self.year_selected(year_select_combo)) self.draw_grid() - + + def add_widget_to_grid(self, widget, line, col): #old_widget_item = self.grid.itemAtPosition (line, col) @@ -135,7 +137,7 @@ class Anselm(System): l = widget_item.widget() else: l = QPlainTextEdit(self.win) - l.setFixedSize(450, self.line_heigth*2) + l.setFixedSize(self.long_line, self.line_heigth*3) result = self.aget('result', line) if result: @@ -246,7 +248,15 @@ class Anselm(System): self.aset('year', 0, year) self.log.info("select year {}".format( year )) + def closeEvent(self, event): + self.log.info("flush redis database") + self.r.flushdb() + if True: + event.accept() + else: + event.ignore() + if __name__ == '__main__': app = QApplication(sys.argv) - ex = Anselm() + Anselm() sys.exit(app.exec_()) diff --git a/anselm/system.py b/anselm/system.py index c352241..4fb8dc8 100644 --- a/anselm/system.py +++ b/anselm/system.py @@ -8,8 +8,7 @@ import redis class System: """ """ - max_arg_len = 40 - expire_time = 5000 #ms + expire_time = 10000 #ms log_fmt = '%(asctime)s,%(msecs)03d %(hostname)s %(filename)s:%(lineno)s %(levelname)s %(message)s' log_level = "DEBUG" diff --git a/anselm/worker.py b/anselm/worker.py index 87b3668..5201fe0 100644 --- a/anselm/worker.py +++ b/anselm/worker.py @@ -16,7 +16,7 @@ class Worker(System): def run(self): - """The memeber workomline is set ba anselm + """The member workonline is set ba anselm before the thread is start. """ if self.work_on_line: @@ -26,36 +26,44 @@ class Worker(System): acc = task['Action'] if acc == "TCP": - start_new_thread( self.relay_worker, (task, line)) + worker = self.relay_worker if acc == "VXI11": - start_new_thread( self.relay_worker, (task, line)) + worker = self.relay_worker if acc == "wait": - start_new_thread( self.wait_worker, (task, line)) + worker = self.wait_worker + + start_new_thread( worker, (task, line)) self.work_on_line = None else: - self.log.error("member work_on_line not set") + self.log.error("member var: work_on_line not set") def relay_worker(self, task, line): - req = requests.post(self.relay_url, data=json.dumps(task), headers = self.headers) - res = req.json() + repeat = True + while repeat: + req = requests.post(self.relay_url, data=json.dumps(task), headers = self.headers) + res = req.json() - if 'Result' in res: - self.aset('result', line, res['Result'], expire=True) - - if 'ToExchange' in res: - self.aset('exchange', line, res['ToExchange'], expire=True) + if 'Result' in res: + self.aset('result', line, res['Result'], expire=False) - self.r.publish('io', line) - time.sleep(self.expire_time /1000 * (1+0.1)) - self.r.publish('io', line) + if 'ToExchange' in res: + self.aset('exchange', line, res['ToExchange'], expire=False) + + self.log.debug("values written") + self.r.publish('io', line) + + run_kind = self.aget('run_kind', line) + self.log.debug("run_kind is {}".format(run_kind)) + if run_kind == 'loop': + repeat = True + else: + repeat = False + break def wait_worker(self, task, line): time.sleep(5) self.aset('result', line, [{'completed':True}], expire=True) - - self.r.publish('io', line) - time.sleep(self.expire_time / 1000 * (1+0.1)) self.r.publish('io', line) @@ -63,3 +71,6 @@ class Worker(System): + + + -- GitLab