从芹菜功能发出推送通知



我试图使用Django消息显示消息,但当@shared_task上发生特定事件时,应该执行此警报。这是我在tasks.py 中的芹菜函数代码

def show_message_in_time(self,response):
while True:
# get_info_to_show() this function will do something 
messages.info(response, 'Your email is added successfully!')
sleep(2*60)

这是views.py 上的函数

def index(response):

show_message_in_time.delay(response)
return render(response, "Sales.html", {'zipped_list': objs})

以下是我收到的错误

Exception Value:    
Object of type 'WSGIRequest' is not JSON serializable

我曾尝试将WSGIREQest转换为JSON,但这也不起作用。任何帮助都将不胜感激!

问题的最简单解决方案是用您真正需要的WSGIRequest/HttpRequest创建一个字典。

假设您的WSGIREQest具有";用户名";以及";电子邮件";零件。然后,您将索引重构为以下内容:

def index(response):
data = { 
"method": response.method,
"username": response["username"],
"email": response["email"]
}
if response.method == "POST":
data["response_data"] = response.POST
if response.method == "GET":
data["response_data"] = response.GET
show_message_in_time.delay(data)
return render(response, "Sales.html", {'zipped_list': objs})

如果你知道这是一种后处理方法,那么最快的测试将是

def index(response):
# POST is a dictionary, so it is definitely serializable
show_message_in_time.delay(response.POST)
return render(response, "Sales.html", {'zipped_list': objs})

免责声明:我从未使用过Django或任何其他网络框架,但我对Celery知之甚少。

相关内容

  • 没有找到相关文章

最新更新