get_current_tick auth implementation
stevegbrooks opened this issue · comments
Steve G Brooks commented
When I use get_current_tick
in a multithreaded setting (see code below), it fails and prints the message "run jqdatasdk.auth first", and returns None
.
When I run any other JQData API function with multithreading it runs successfully (no error) and returns a pd.DataFrame
.
My guess is this has to do with the way get_current_tick
does its authorization check.
Here's a reproducible example:
import jqdatasdk as jq
from concurrent.futures import ThreadPoolExecutor
jq.auth('138********', '********')
##### Multithreaded doesn't work
MAX_THREADS = 3
executor = ThreadPoolExecutor(MAX_THREADS)
stock_data = (result for result in executor.map(jq.get_current_tick, ['000001.XSHE'])) #prints error
next(stock_data) #returns None
########################
#calling it normally works
jq.get_current_tick(['000001.XSHE'])