Skip to content

get_current_tick auth implementation #25

@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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions