Przeglądaj źródła

auto commit

master
jfinn 2 lat temu
rodzic
commit
89449dd743
1 zmienionych plików z 34 dodań i 0 usunięć
  1. 34
    0
      wsps/tasks_loop.py

+ 34
- 0
wsps/tasks_loop.py Wyświetl plik

@@ -172,10 +172,43 @@ class globCL(GCLMixin):
172 172
 		self.rconn = connect_redis()
173 173
 		self.rman = RldMan()
174 174
 		self.cbs_once = []
175
+		self.cbs_asap = []
175 176
 		self.cbs_once_set = set()
176 177
 		self.cbs = {"fn1":fn1,"fn2x":nop}
177 178
 		self.timeout = 1
179
+		self.fast_timeout = .1
178 180
 		pass
181
+	async def persistent_fast_cb_loop(self,*a,**kw):
182
+		while 1:
183
+			if len(self.cbs_asap):
184
+				cbs_once = [*self.cbs_asap]
185
+				self.cbs_asap=[]
186
+				k=0
187
+				for v in cbs_once:
188
+					try:
189
+						call_info = callable_helper(v)
190
+						if (call_info["is_callable"]):
191
+							if call_info["is_coroutine"]:
192
+								pass
193
+								await v({k,self})
194
+							else:
195
+								v({k,self})
196
+
197
+						else:
198
+							pass
199
+						# p(k,v)
200
+
201
+						pass
202
+					except Exception as e:
203
+						p("persistent_fast_cb_loop Exception cbs_once:",e)
204
+						p(flush=True)
205
+						# raise
206
+					else:
207
+						pass
208
+					finally:
209
+						pass
210
+					k += 1
211
+			await asyncio.sleep(self.timeout)
179 212
 	async def persistent_loop(self,*a,**kw):
180 213
 		while 1:
181 214
 			# p("PL:",time.time(),flush=1)
@@ -244,6 +277,7 @@ class globCL(GCLMixin):
244 277
 		self.run_persistent_loop = nop
245 278
 		self.rman.persistent_loop_cb()
246 279
 		loop.create_task(self.persistent_loop())
280
+		loop.create_task(self.persistent_fast_cb_loop())
247 281
 		self.loop = loop
248 282
 	run_persistent_loop = _run_persistent_loop
249 283
 

Ładowanie…
Anuluj
Zapisz