WIP fsp output throttling - not working yet
							parent
							
								
									0a54ed7dad
								
							
						
					
					
						commit
						92d7ffd332
					
				| 
						 | 
				
			
			@ -246,7 +246,7 @@ async def sample_and_broadcast(
 | 
			
		|||
                        if tick_throttle:
 | 
			
		||||
                            # this is a send mem chan that likely
 | 
			
		||||
                            # pushes to the ``uniform_rate_send()`` below.
 | 
			
		||||
                            await stream.send(quote)
 | 
			
		||||
                            await stream.send((sym, quote))
 | 
			
		||||
 | 
			
		||||
                        else:
 | 
			
		||||
                            await stream.send({sym: quote})
 | 
			
		||||
| 
						 | 
				
			
			@ -285,10 +285,14 @@ async def uniform_rate_send(
 | 
			
		|||
 | 
			
		||||
    sleep_period = 1/rate - 0.000616
 | 
			
		||||
    last_send = time.time()
 | 
			
		||||
    aname = stream._ctx.chan.uid[0]
 | 
			
		||||
    fsp = False
 | 
			
		||||
    if 'fsp' in aname:
 | 
			
		||||
        fsp = True
 | 
			
		||||
 | 
			
		||||
    while True:
 | 
			
		||||
 | 
			
		||||
        first_quote = await quote_stream.receive()
 | 
			
		||||
        sym, first_quote = await quote_stream.receive()
 | 
			
		||||
        start = time.time()
 | 
			
		||||
 | 
			
		||||
        # append quotes since last iteration into the last quote's
 | 
			
		||||
| 
						 | 
				
			
			@ -301,7 +305,7 @@ async def uniform_rate_send(
 | 
			
		|||
        #
 | 
			
		||||
        while True:
 | 
			
		||||
            try:
 | 
			
		||||
                next_quote = quote_stream.receive_nowait()
 | 
			
		||||
                sym, next_quote = quote_stream.receive_nowait()
 | 
			
		||||
                ticks = next_quote.get('ticks')
 | 
			
		||||
 | 
			
		||||
                if ticks:
 | 
			
		||||
| 
						 | 
				
			
			@ -312,12 +316,12 @@ async def uniform_rate_send(
 | 
			
		|||
                rate = 1 / (now - last_send)
 | 
			
		||||
                last_send = now
 | 
			
		||||
 | 
			
		||||
                # print(f'{rate} Hz sending quotes')  # \n{first_quote}')
 | 
			
		||||
                # log.info(f'{rate} Hz sending quotes')  # \n{first_quote}')
 | 
			
		||||
 | 
			
		||||
                # TODO: now if only we could sync this to the display
 | 
			
		||||
                # rate timing exactly lul
 | 
			
		||||
                try:
 | 
			
		||||
                    await stream.send({first_quote['symbol']: first_quote})
 | 
			
		||||
                    await stream.send({sym: first_quote})
 | 
			
		||||
                    break
 | 
			
		||||
                except trio.ClosedResourceError:
 | 
			
		||||
                    # if the feed consumer goes down then drop
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue