0
私のsanic
アプリケーションで非同期rawソケットを使用しようとしましたPython 3.6
curio
からの非同期関数がサニックス非同期コンテキストでは機能しないことに本当に驚きました。コンセプトの最小限の証拠:古典をサニックスでも使えますか?何故なの?
import curio
from sanic import Sanic
from sanic.response import text
app = Sanic(__name__)
@app.route('/')
async def index(request):
sock = await curio.open_connection("google.com", 443, ssl=True)
resp = await sock.recv(1024)
return text(resp)
app.run(host="0.0.0.0", port=5001)
このコードはOPによって提起されたgithubの問題、でこの質問を結ぶために、任意のHTTPリクエスト
$ python3 test2.py
2017-04-17 17:33:13,266: INFO: Goin' Fast @ http://0.0.0.0:5001
2017-04-17 17:33:13,270: INFO: Starting worker [93060]
Fatal Python error: GC object already tracked
Current thread 0x00007fc57706e480 (most recent call first):
File "/usr/lib/python3.6/linecache.py", line 165 in lazycache
File "/usr/lib/python3.6/traceback.py", line 345 in extract
File "/usr/lib/python3.6/traceback.py", line 497 in __init__
File "/usr/lib/python3.6/traceback.py", line 117 in format_exception
File "/usr/lib/python3.6/traceback.py", line 163 in format_exc
File "/usr/lib/python3.6/site-packages/sanic/handlers.py", line 93 in default
File "/usr/lib/python3.6/site-packages/sanic/handlers.py", line 70 in response
File "/usr/lib/python3.6/site-packages/sanic/app.py", line 472 in handle_request
File "/usr/lib/python3.6/site-packages/sanic/server.py", line 410 in serve
File "/usr/lib/python3.6/site-packages/sanic/app.py", line 561 in run
File "test2.py", line 14 in <module>
Aborted (core dumped)