首页 > 解决方案 > 在 nsq.run() 之后,我的 python 脚本没有执行“pynsq”包中的代码块

问题描述

代码截图

我正在尝试将“pynsq”包(消息代理服务)用于我的 django 项目。但是当我使用 nsq.Reader() 类通过使用 nsq.run() 命令运行异步消费者请求时,它需要我的主线程和我的代码在此命令未执行之后。

例如:- 如图 nsq.run() 之后的图片所示,我正在尝试打印(“hello”),但是当我运行这个 .py 脚本时,打印函数没有调用。我已尽力为此找到解决方案.

可以在我的 django 项目中使用这个包吗?因为当我在 nsq.run() 之后运行这个脚本时,我的块代码没有执行。

请任何人都可以建议我在我的 django 项目中使用这个包的解决方案。

标签: pythondjangotornadonsqpynsq

解决方案


nsq.run()函数在后台启动事件循环。基本上,它是一个while永远运行的循环。因此,在此行之后编写的任何代码都不会被执行。

请任何人都可以建议我在我的 django 项目中使用这个包的解决方案。

您可以nsq在与 django 进程不同的进程中运行,然后使用Celery之类的东西在两者之间传递消息。


推荐阅读