faust-streaming / faust

Python Stream Processing. A Faust fork
https://faust-streaming.github.io/faust/
Other
1.65k stars 183 forks source link

SetManager.flush timer overlapping when using SetGlobalTable #77

Closed 239487230597507 closed 3 years ago

239487230597507 commented 3 years ago

Checklist

Steps to reproduce

Define a SetGlobalTable and start a faust worker.

my_table= app.SetGlobalTable('some_name', start_manager=True)

Expected behavior

The worker runs without any warnings.

Actual behavior

A warning appears every few seconds:

faust_1  | [2021-01-20 14:49:11,275] [1] [WARNING] Timer SetManager.flush is overlapping (interval=2.0 runtime=2.0038752279942855) 
faust_1  | [2021-01-20 14:49:19,277] [1] [WARNING] Timer SetManager.flush is overlapping (interval=2.0 runtime=2.003296997048892) 
faust_1  | [2021-01-20 14:49:27,277] [1] [WARNING] Timer SetManager.flush is overlapping (interval=2.0 runtime=2.0008818010101095) 
faust_1  | [2021-01-20 14:49:35,279] [1] [WARNING] Timer SetManager.flush is overlapping (interval=2.0 runtime=2.0001070860307664) 
faust_1  | [2021-01-20 14:49:39,280] [1] [WARNING] Timer SetManager.flush is overlapping (interval=2.0 runtime=2.000795218977146) 
faust_1  | [2021-01-20 14:49:43,282] [1] [WARNING] Timer SetManager.flush is overlapping (interval=2.0 runtime=2.0005710140103474) 
faust_1  | [2021-01-20 14:49:47,283] [1] [WARNING] Timer SetManager.flush is overlapping (interval=2.0 runtime=2.000350568909198) 
faust_1  | [2021-01-20 14:49:51,285] [1] [WARNING] Timer SetManager.flush is overlapping (interval=2.0 runtime=2.0012008629273623) 
faust_1  | [2021-01-20 14:49:55,286] [1] [WARNING] Timer SetManager.flush is overlapping (interval=2.0 runtime=2.00038573902566) 
faust_1  | [2021-01-20 14:49:59,289] [1] [WARNING] Timer SetManager.flush is overlapping (interval=2.0 runtime=2.001224332023412) 
faust_1  | [2021-01-20 14:50:03,290] [1] [WARNING] Timer SetManager.flush is overlapping (interval=2.0 runtime=2.000285888905637) 
faust_1  | [2021-01-20 14:50:07,292] [1] [WARNING] Timer SetManager.flush is overlapping (interval=2.0 runtime=2.0006646789843217) 
faust_1  | [2021-01-20 14:50:15,295] [1] [WARNING] Timer SetManager.flush is overlapping (interval=2.0 runtime=2.0010148769943044) 
faust_1  | [2021-01-20 14:50:19,296] [1] [WARNING] Timer SetManager.flush is overlapping (interval=2.0 runtime=2.000219620997086) 

Is the sleep timer here neccessary? https://github.com/faust-streaming/faust/blob/63853b1c0d2843d040e2555ea4bcd38005e3bacb/faust/tables/objects.py#L145

That sleep should already be handled by itertimer right?

Versions

239487230597507 commented 3 years ago

I removed the sleep statement and now the warning is gone.