小编DrM*_*ers的帖子

如何更正 firewalld 和 docker/nginx 的配置?

我有一个 CentOS 7 服务器,它运行了 600 多天,直到最近重新启动,之后传入的 Web 请求接收到 HTTP523(源无法访问)错误代码(通过 Cloudflare,如果这有区别?)除非我停止了 firewalld服务。没有firewalld,事情运行良好,但我不想让它被禁用!

我试过以各种顺序停止dockerfirewalld重新启动它们,但523除非我停止,否则会发生相同的错误firewalld

/var/log/firewalld 包含一些可能有帮助的警告:

  • WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10 -D FORWARD -i br-8acb606a3b50 -o br-8acb606a3b50 -j DROP' failed: iptables: Bad rule (does a matching rule exist in that chain?).
  • WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10 -D FORWARD -i docker0 -o docker0 -j DROP' failed: iptables: Bad rule (does a matching rule exist in that chain?).
  • WARNING: AllowZoneDrifting is enabled. This is considered …

nginx cloudflare docker centos7 firewalld

6
推荐指数
1
解决办法
1436
查看次数

为什么我使用 django-constance 时偶尔会遇到 ImportError 错误?

每几十万个请求我就会看到其中一个:

ImportError at /
cannot import name 'Config' from partially initialized module 'constance.base' (most likely due to a circular import) (/usr/local/lib/python3.9/site-packages/constance/base.py)
Run Code Online (Sandbox Code Playgroud)

我无法找出任何押韵或理由。它与访问admin无关constance,只是随机发生的。LazyObject我最好的猜测是,这与in有关constance's __init__.py,也许是重新启动过期gunicorn工作人员时的随机竞争条件或其他什么?!

我在用着:

  • Python 3.9.2
  • 姜戈3.2
  • django-constance = {extras = ["database"],version = "==2.8.*"}
  • "constance""constance.backends.database"INSTALLED_APPS(顶部)
  • CONSTANCE_BACKEND = "constance.backends.database.DatabaseBackend"
  • "constance.context_processors.config"TEMPLATES[0]["OPTIONS"]["context_processors"]

我的代码所做的就是在 python 代码和 Django 模板中以标准方式from constance import config访问属性。config

无论如何,我们已经django-constance在这个网站上使用了很多年,但直到我们升级到2.8.0(从2.6.0)才看到这个错误。Django 3.1 首次出现时我们使用的是它,但自从升级到 3.2 后也出现了这种情况。

我在https://github.com/jazzband/django-constance/上找不到任何类似的错误报告

有什么想法可能导致此问题以及如何解决它吗?

python django

6
推荐指数
1
解决办法
607
查看次数

为什么celery.control.inspect报告的排队任务少于rabbitmqctl?

rabbitmqctl 正确报告数千个排队任务:

$ sudo rabbitmqctl -q list_queues name messages messages_ready messages_unacknowledged
default 13142   13126   16
Run Code Online (Sandbox Code Playgroud)

然而芹菜报道:

>>> len(app.control.inspect().active()['celery@default'])
4
>>> len(app.control.inspect().scheduled()['celery@default'])
1
>>> len(app.control.inspect().reserved()['celery@default'])
16
>>> len(app.control.inspect().revoked()['celery@default'])
0
Run Code Online (Sandbox Code Playgroud)

正确数量(数千)的任务似乎出现了app.control.inspect().stats()['celery@default']['total'],但我真的想知道python 中未完成的排队任务的正确数量,而且active()似乎只报告了大约16个左右 - 也许有一个限制?

如果没有使用特权子进程调用rabbitmqctl,我如何从python中获取完整的排队任务数,最好是通过celery(顺便说一下这个服务器当前正在使用Celery 3.1.8)

python rabbitmq celery rabbitmqctl

5
推荐指数
1
解决办法
873
查看次数

django-admin makemessages:它如何处理 txt、xml 和其他文件?

我正在翻译 Django 应用程序。我在特定扩展名的文件中有可翻译的字符串(.vue 文件,但目前这不是很重要)。

我必须运行makemessages命令来解析这些字符串并生成 .po 文件。

文档说:

makemessages:遍历当前目录的整个源代码树并提取所有标记为翻译的字符串。

此外,文档指出默认文件扩展名是:html, txt, py并给出了一个明确定义扩展名的例子:

django-admin makemessages --locale=de --extension=html,txt --extension xml
Run Code Online (Sandbox Code Playgroud)

我的问题是:makemessages应该如何处理像txt和这样的非编译文件xml?我如何在这样的文件中标记要翻译的字符串

我知道如何在模板或 .py 文件中执行此操作:

.html

{% trans "Text to be translated" %}
Run Code Online (Sandbox Code Playgroud)

.py

gettext("Text to be translated")
# or
_("Text to be translated")
Run Code Online (Sandbox Code Playgroud)

但是其他扩展呢?.txt.xml?...最终.vue

python django gettext internationalization vue.js

4
推荐指数
1
解决办法
1837
查看次数