相关疑难解决方法(0)

响应发送到客户端后,在Django中执行代码

在我的Django应用程序中,我想跟踪响应是否已成功发送到客户端.我很清楚在像HTTP这样的无连接协议中没有"防水"方式来确保客户端已经接收(并显示)了响应,所以这不是关键任务功能,但我仍然希望在最新的可能时间.响应将不是HTML,因此任何来自客户端的回调(使用Javascript或IMG标签等)都是不可能的.

我能找到的"最新"钩子是在中间件列表的第一个位置添加一个实现process_response的自定义中间件,但根据我的理解,这是在构造实际响应并发送到客户端之前执行的.Django中是否有任何钩子/事件在响应成功发送后执行代码?

django http httpresponse django-middleware django-views

19
推荐指数
2
解决办法
5984
查看次数

Celery引发了ValueError:没有足够的值来解压缩

尝试使用Celery运行简单示例并接收异常.RabbitMQ在Docker中启动,也尝试在本地启动它.Celery可在本地Windows主机上运行

from celery import Celery

app = Celery('tasks', broker='amqp://192.168.99.100:32774')

@app.task()
def hello():
    print('hello')


if __name__ == '__main__':
    hello.delay()
Run Code Online (Sandbox Code Playgroud)

我的错误文字的摘录:

[2017-08-18 00:01:08,628: INFO/MainProcess] Received task: tasks.hello[8d33dbea-c5d9-4938-ab1d-0646eb1a3858] [2017-08-18 00:01:08,632: ERROR/MainProcess] Task handler raised error: ValueError('not enough values to unpack (expected 3, got 0)',) Traceback (most recent call last): File "c:\users\user\celenv\lib\site-packages\billiard\pool.py", line 358, in workloop result = (True, prepare_result(fun(*args, **kwargs))) File "c:\users\user\celenv\lib\site-packages\celery\app\trace.py", line 525, in _fast_trace_task tasks, accept, hostname = _loc ValueError: not enough values to unpack (expected 3, got 0)

python celery

8
推荐指数
5
解决办法
5469
查看次数