Skip to content

get_current_tick auth implementation #25

Open
@stevegbrooks

Description

@stevegbrooks

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'])

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions