不能将Dash应用程序背景回调添加到Celery中运行。
创始人
2024-12-27 04:30:04
0

问题的原因是Celery默认使用pickle序列化任务函数,而Dash应用程序中的回调函数通常不能使用pickle序列化。这可能会导致Celery无法找到完整的函数对象并因此无法执行任务。

为了解决这个问题,可以指定Celery使用其他的序列化程序,比如json。以下是一个示例代码,展示了如何在Celery中使用json序列化来解决这个问题:

from celery import Celery
from celery.signals import worker_process_init, worker_process_shutdown

from dash.dependencies import Input, Output
import dash_html_components as html
import dash


app = dash.Dash(__name__)
server = app.server


@worker_process_init.connect
def init_worker(**kwargs):
    global app
    app = dash.Dash(__name__)
    server = app.server


@worker_process_shutdown.connect
def shutdown_worker(**kwargs):
    global app
    app = None


app.layout = html.Div(
    [
        html.Button("Submit", id="submit-button"),
        html.P(id="output")
    ]
)


@app.callback(Output("output", "children"), [Input("submit-button", "n_clicks")])
def update_output(n_clicks):
    return f"Button clicked {n_clicks} times."


celery = Celery(__name__, broker="redis://localhost:6379/0", backend="redis://localhost:6379/0", task_serializer="json")


@celery.task
def run_dash_app():
    app.run_server(debug=False, mode="external")


if __name__ == "__main__":
    run_dash_app.delay()

在上面的例子中,我们使用 worker_process_initworker_process_shutdown 信号来初始化和关闭Dash app,这样就可以确保所有Celery任务都在同一个进程中运行。然后,在Celery任务函数中,我们指定使用json序列化。

使用这种方法可以确保我们可以将Dash应用程序的背景回调添加到Celery任务队列中,并且可以顺利地运行。

相关内容

热门资讯

机器人五分钟!微扑克靠谱wep... 机器人五分钟!微扑克靠谱wepoke苹果版外挂(一直真的有挂)-微博客户端1)wepoke苹果版外挂...
检测两分钟!GG扑克辅助软件f... 检测两分钟!GG扑克辅助软件fishpoker下载(其实真的有挂)-今日头条亲,关键说明,GG扑克辅...
挂三分钟!德扑统计软件哈糖大菠... 挂三分钟!德扑统计软件哈糖大菠萝十三张胜率(原来真的有挂)-今日头条;1、哈糖大菠萝十三张胜率ai辅...
ai辅助十分钟!wpk透视辅助... ai辅助十分钟!wpk透视辅助可测试真的德州aapoker俱乐部正确打法(的确是有挂的)-今日头条;...
ai代打六分钟!wpk微扑克真... ai代打六分钟!wpk微扑克真的wpk辅助挂(原来真的有挂)-今日头条;1、wpk微扑克真的系统规律...
安装8分钟!wepoke软件透... 安装8分钟!wepoke软件透明下载渠道wpk辅助器是真的假的(的确是有挂的)-百度知乎;1、不需要...
存在3分钟!德扑之星 ai软件... 存在3分钟!德扑之星 ai软件线上德州辅助工具(的确是有挂的)-百度知乎1、实时线上德州辅助工具开挂...
辅助七分钟!cloudpoke... 辅助七分钟!cloudpoker有辅助透视wepoke外挂(果真真的有挂)-哔哩哔哩1、下载好clo...
技巧7分钟!wepoke辅助p... 技巧7分钟!wepoke辅助pokerrrr开挂(都是真的有挂)-今日头条;1、技巧7分钟!wepo...
大厅房四分钟!微扑克软件开发定... 大厅房四分钟!微扑克软件开发定制appwpk机制(的确是有挂的)-今日头条1)微扑克软件开发定制ap...