小编rke*_*ols的帖子

Dash/Plotly - long_callback 在 celery/redis 后端失败

概括

\n

我\xe2\x80\x99一直在开发一个使用 的 dash 应用程序long_callback,并且为了开发,我\xe2\x80\x99一直在diskcache为我的 使用后端long_callback_manager,正如我在这里找到的指南所建议的:https://dash.plotly。 com/长回调

\n

当我尝试使用 Gunicorn 运行我的应用程序时,它无法启动,因为diskcache. 因此,我决定切换到 celery/redis 后端,因为 \xe2\x80\x99s 无论如何都建议用于生产。

\n

我运行了一个 redis 服务器(正确响应 with redis-cli pingPONG,然后再次启动该应用程序。这次它启动得很好,所有正常的回调都起作用,但不起作用long_callback

\n

细节:

\n
    \n
  • 页面或多或少挂起,页面标题在正常标题和标题之间闪烁Updating...,表明应用程序认为\xe2\x80\x99s\xe2\x80\x9c正在等待\xe2\x80\x9d的响应/更新这long_callback
  • \n
  • 由运行参数设置的值long_callback被设置为它们的起始值,表明应用程序识别出long_callback应该运行。
  • \n
  • 通过将打印语句放置在函数内的第一行long_callback并看到它没有打印,我确定该函数永远不会启动。
  • \n
  • 使用gunicorn 和不使用gunicorn 都会发生故障。
  • \n
\n

这些细节都表明问题出在 celery/redis 后端。无论是在客户端/浏览器上还是在服务器\xe2\x80\x99s stdout/sterr 上都没有显示错误。

\n

如何让 celery/redis 后端工作?

\n

更新:在意识到该变量正在被使用并且其值根据引用它的文件而变化之后,我还尝试将创建和 的__name__代码移至,但无济于事。完全相同的事情发生了。celery_appLONG_CALLBACK_MANAGERapp.py …

python redis celery plotly-dash

3
推荐指数
1
解决办法
3479
查看次数

标签 统计

celery ×1

plotly-dash ×1

python ×1

redis ×1