我有一个 CentOS 7 服务器,它运行了 600 多天,直到最近重新启动,之后传入的 Web 请求接收到 HTTP523(源无法访问)错误代码(通过 Cloudflare,如果这有区别?)除非我停止了 firewalld服务。没有firewalld,事情运行良好,但我不想让它被禁用!
我试过以各种顺序停止docker和firewalld重新启动它们,但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 …每几十万个请求我就会看到其中一个:
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工作人员时的随机竞争条件或其他什么?!
我在用着:
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/上找不到任何类似的错误报告
有什么想法可能导致此问题以及如何解决它吗?
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)
我正在翻译 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 文件中执行此操作:
{% trans "Text to be translated" %}
Run Code Online (Sandbox Code Playgroud)
gettext("Text to be translated")
# or
_("Text to be translated")
Run Code Online (Sandbox Code Playgroud)
但是其他扩展呢?.txt、.xml?...最终.vue?