问题标签 [asgi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Django-channels daphne 不同的行为 WINDOWS - LINUX 使用 sync_to_async
我在 Windows 10 下使用 Django 3.2.2 和 Daphne 3.0.2、Python 3.8.9。
Daphne 作为 django-channels 的 ASGI 服务器,在我的 consumer.py 频道文件中,我需要访问数据库 ORM。所以我需要使用包装器,因为数据库访问应该是“同步”,这是代码:
在我通过 Webbsocket (django-channels) 响应将我的反馈发送回客户端之后:
在 LINUX 下,一切都按预期运行,我在客户端异步获取 websocket 消息。在 Windows 下,只有当整个服务器功能已完成,因此“同步”时,我最终才会收到 websocket 消息。
我觉得应该和达芙妮在windows下处理事件循环的方式有关。有没有办法让它在 Windows 下像在 LINUX 下一样以 sema 方式工作?
fastapi - 没有开始响应就返回了 ASGI 可调用对象
我正在处理的 fastAPI 不会在请求失败时返回回溯,而是返回 500 Internal Server Error 和错误:
任何人以前遇到过这个问题并知道解决方法吗?
python - 将 JustPy 部署到 Heroku
我正在尝试在 Heroku 上部署 JustPy 应用程序。我都是新手。
基本代码,来自https://justpy.io/tutorial/getting_started/
要部署到 Heroku 帐户,请从以下网址获取 Heroku 工具:https ://devcenter.heroku.com/articles/heroku-cli
从您的项目文件夹中:
...我收到以下错误:
[更新:]我得到这个进一步的错误:
我究竟做错了什么?感谢所有帮助!
django - django 异步支持 - 不完全理解主要概念
django asgi 的主要概念是什么?
当视图中有多个任务要完成时,同时处理这些多个任务,从而减少视图的响应时间。
当同时有来自多个用户的多个请求时,同时处理这些请求,从而减少用户在队列中等待的时间。
渠道?网络套接字?
我试图理解和使用 asgi 的概念,但感觉很迷茫。谢谢。
wsgi - 这些术语 [ASGI、WSGI、Channels、WebSockets] 之间有什么更密切的关系?
我对这些主题感到困惑:[ASGI, WSGI, Channels, WebSockets] 我对 python 中的套接字了解一点,但是当我进行任何类型的搜索时,我总是看到文章谈论这三个术语 [ASGI, WSGI, Channels] 所以,后来我发现这些术语与套接字有很大关系,但我不知道怎么做?
那么,任何人都可以解释这三个术语之间的关系是什么,如果套接字是我应该学习的第一个主题,或者我必须先学习 ASGI 或者什么? 相反,我应该一一通过的正确路径是什么?
python - FastApi 没有在不同线程中的同一端点上运行每个请求
所以,我想我什么async def
都懂def
。我有这段代码,我正在运行它uvicorn main:app
如果我/hi
同时访问/
。打印语句立即出现,它们每个大约在 10 秒后结束,这必须意味着它们同时在不同的线程中开始
但是,如果我打开两个请求,/hi
第一个结束,然后第二个开始,即我看到第一个的 print 语句,然后 10 秒后看到第二个的 print 语句,这一定意味着它们没有在不同的线程上运行。
我想知道为什么会这样,如果这是对不同端点的请求在不同线程中运行但对同一端点的请求一个接一个运行的默认行为。我还想知道是否有一种方法可以使对同一端点的请求在不同的线程中运行,而at the same time
无需使用多个 uvicorn 工作者。
sockets - Django 在导入通道上变得同步
在我的项目(installed_apps)中包含频道时,它已经变得同步了。我正在使用 django 3.2.4。如果我删除这些频道并尝试,我的 django 服务器能够异步处理多个请求(当我从邮递员那里访问时)。任何形式的帮助将不胜感激。
提前致谢!
django - Django Channels 错误出现在单独的 Django 项目中(断管错误)
我对 ASGI 和 Django Channels 比较陌生,所以这可能是一个非常基本的问题。
由于我的一个 Django 项目中的 Django Channels,我运行了 ASGI,它运行良好。然后我想处理我的旧项目,它还没有使用 ASGI。我杀死在 127.0.0.1 上本地运行的调试服务器,切换环境(在一个全新的 shell 窗口中)并启动为旧项目运行的调试服务器:
这些错误消息每 30 秒左右重复一次。我怀疑有一个进程仍在运行以支持新的、配备 ASGI 的项目,但我不知道它是什么。(我找了 daphne、nginx 等。)
我需要做什么才能正确关闭我的新 Django Channels 项目,以便在旧版本中运行服务器时不会出现这些错误?
django - Django 路径转换器引发 SynchronousOnlyOperation
我正在将现有的 WSGI 服务器迁移到 ASGI,并且遇到了路径转换器中使用 ORM 引发 SynchronousOnlyOperation 异常的问题。
我的转换器代码是这样的
所以当我去一个像/myapp/<MyModel:my_model>/
我一样的网址时
django.core.exceptions.SynchronousOnlyOperation:您不能从异步上下文中调用它 - 使用线程或 sync_to_async。
我到底应该放在sync_to_async
哪里?如果我像这样在转换器中这样做
转换器输出一个协程对象而不是 MyModel 实例,所以当我尝试使用它时会得到 AttributeError 。
AttributeError:“协程”对象没有属性“my_attribute”
我应该await
在视图中看到它吗?这将破坏使用转换器的目的。我只能这样做get_object_or_404
。
是否有不涉及设置DJANGO_ALLOW_ASYNC_UNSAFE
为 True 的解决方案?在这一点上,我正在考虑将所有东西从转换器中重构出来,并<int:mymodel_id>
在任何地方使用。还有其他方法吗?