[英]Django signals sending twice
我正在基于Actstream justquick / django-activity-stream /创建一个简单的Django信誉应用程序,该应用程序创建了一个信号用作: rep.send(request.user, action='increase', target=obj, val=10)
但是,即使使用调度UID:
# apps.py
from django.apps import AppConfig
from . signals import rep
from . receivers import rep_handler
class DjangoReputationConfig(AppConfig):
name = 'django_rep'
def ready(self):
rep.connect(rep_handler, dispatch_uid='django_rep.models')`
我是从Actstream / apps.py复制的,我无法让信号只发送一次。 我尝试了其他独特的字符串,似乎没有什么不同。
在我的__init__.py中有: default_app_config = 'django_rep.apps.DjangoReputationConfig'
谢谢! 如果您想查看代码,请在此处查看仓库!
我有完全一样的问题。 我尝试了很多事情,但是最后我不得不诉诸使用环境变量,如下所示:
import os
from django.apps import AppConfig
class MyConfig(AppConfig):
name = "xyz"
def ready(self):
if not os.environ.get("ready_called"):
# The development server instantiates MyConfig twice; running via gunicorn only once.
os.environ["ready_called"] = "1" # Use this environment semaphore to prevent starting backgroundtaks more than once.
import backgroundtasks
backgroundtasks.install()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.