当前位置: 首页 > 面试题库 >

django项目中的信号处理程序应该放在哪里?

太叔志文
2023-03-14
问题内容

我喜欢Greg解决此问题的方法,但我想指出,你可以直接在管理员中执行相同的操作:

我刚刚开始在django项目中实现信号监听器。虽然我了解它们是什么以及如何使用它们。我很难弄清楚我应该把它们放在哪里。django网站上的文档说:

你可以将信号处理和注册代码放在任何你喜欢的位置。但是,你需要确保该模块所在的模块尽早导入,以便在需要发送任何信号之前注册信号处理。这使你的应用程序的models.py成为放置信号处理程序的好地方。

虽然这是一个很好的建议,但是在我的models.py中包含非模型类或方法只会给我带来错误的印象。

那么,存储和注册信号处理程序的最佳实践/规则是什么?

这样,你只需在管理界面内进行注释。并非与你执行的每个查询有关。


问题答案:

我实际上喜欢使它们成为模型本身的类方法。这将所有内容都保留在一个类中,这意味着你不必担心导入任何内容。



 类似资料:
  • 问题内容: 实用程序函数在Django中应该存放在哪里?诸如自定义加密/解密数字,发送推文,发送电子邮件,验证对象所有权,自定义输入验证等功能。我在应用程序中的多个位置使用了重复性和自定义内容。我现在肯定要打破DRY。 我看到了一些演示,其中在models.py中定义了函数,尽管从概念上看这对我来说并不正确。他们是否应该使用导入到我的项目中的“实用程序”应用程序?如果是这样,它们在实用程序应用程序

  • 问题内容: 我有2个线程(线程1和线程2)。而且我有信号处理。每当发生线程2时,都应处理该信号。为此,我写了下面的程序 我编译并运行该程序。每1秒打印一次“ thread1 active”,每3秒打印一次“ thread2 active”。 现在我生成了。但是它会像上面那样显示“ thread1 active”和“ thread2 active”消息。再次生成了,现在每3秒仅打印一次“ threa

  • 我搜索了很多,几乎所有我发现的例子都使用了控制器中的异常处理和自己的异常处理程序。我一直认为这应该在程序的服务层上完成。如果不是,我真的不明白为什么要创建单独的服务层。 另外,如果我在Controller中实现异常处理,是否意味着我必须在前面的所有层中抛出异常?

  • 问题内容: 我需要在接收到任何终止命令(如SIGTERM和SIGKILL)时写入日志文件。 我可以注册SIGTERM,但是如何处理SIGKILL信号? 问题答案: 您不能,至少不是因为进程被杀死。 您 可以 做的是安排父进程监视子进程的死亡,并采取相应的措施。任何体面的过程监控系统(例如daemontools)都内置了这样的工具。

  • 问题内容: 我应该将Maven 2项目放在哪里,以便将Maven放在目标EAR工件中? 问题答案: 本应打包在最终EAR的目录下(旁标准)。 使用Maven EAR插件, 额外文件要包含在EAR中 的默认位置(可以使用参数控制)是。因此,以下操作将起作用(使用默认值):

  • 我在https://gitlab.com/krichter/jee-slf4j-logging提供了一个MCVE。 GlassFish4中,没有日志框架依赖项在POM.XML不包括Java EE方面。