我试图通过cron job在多线程中请求API。我想停止或懒散请求的线程。
pserve
没问题。我想使用uWSGI
,但我遇到了一些问题。
Python 3.5.2
我的代码是这样的:
import threading
import requests
def worker(settings):
lookup_url = settings['lookup_url']
api_sid = settings['api_sid']
auth_token = settings['auth_token']
args = settings['args']
resp = requests.post(lookup_url,
auth=(api_sid, auth_token),
data={'data': args},
timeout=5.0,
)
def main(request):
registry = request.registry
settings = registry.settings
for _ in range(3):
threading.Thread(target=worker, args=(settings,)).start()
请让我知道任何解决方案。
答案 0 :(得分:1)
UWSGI默认情况下不启用Python线程:
默认情况下,Python插件不会初始化GIL。这意味着 你的应用程序生成的线程将无法运行。如果你需要线程,请记住 使用enable-threads启用它们。在多线程中运行uWSGI mode(带有线程选项)将自动启用线程 支持。这种“奇怪的”默认行为是出于性能原因, 没有羞耻。
http://uwsgi-docs.readthedocs.io/en/latest/ThingsToKnow.html