它发生在今天,我突然注意到计算机上的进程开始变慢。所以我检查了任务管理器,看看是什么原因造成的。
我已经等了几分钟,通过保持 Visual Studio Code 的idle状态来查看它是否发生变化,然后我的计算机将内存转储到BSoD(蓝屏死机)中。
重新启动后,我尝试了同样的方式重现状态,在20~30分钟内,它达到了5 GB。
0 909 4452 c:\Users\arbaz\.vscode\extensions\ms-python.python-2018.12.1\languageServer.0.1.72\Microsoft.Python.LanguageServer.exe
造成这种情况的可能原因是什么,我该如何解决?
最新版本:
Version: 1.30.0 (system setup)
Commit: c6e592b2b5770e40a98cb9c2715a8ef89aec3d74
Date: 2018-12-11T22:29:11.253Z
Electron: 2.0.12
Chrome: 61.0.3163.100
Node.js: 8.9.3
V8: 6.1.534.41
OS: Windows_NT x64 10.0.17134
Run Code Online (Sandbox Code Playgroud)
Version: Code 1.30.0 (c6e592b2b5770e40a98cb9c2715a8ef89aec3d74, 2018-12-11T22:29:11.253Z)
OS Version: Windows_NT x64 10.0.17134
CPUs: AMD Ryzen 7 1700 Eight-Core Processor (16 x 3000)
Memory (System): 15.95 GB (3.87 GB free)
VM: 40%
Screen Reader: no
Process Argv: C:\Users\arbaz\AppData\Local\Temp\tasks.py
GPU Status: 2d_canvas: …Run Code Online (Sandbox Code Playgroud) File "/usr/local/lib/python3.7/dist-packages/psycopg2/__init__.py", line 126, in connect conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
django.db.utils.OperationalError: FATAL: remaining connection slots are reserved for non-replication superuser connections
Run Code Online (Sandbox Code Playgroud)
根据 Postgres 文档,当 Django 与 Postgres DB 建立的连接数量超过默认连接限制时,就会发生此错误。
#settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'xxxxx',
'USER': 'xxxxx',
'PASSWORD':'xxxxx',
'HOST':'localhost',
'PORT':'5432',
}
Run Code Online (Sandbox Code Playgroud) 如何JsonField将Django模型的Postgres映射到ElasticSearch索引?有什么解决方法可以使其正常工作?
参考:https : //github.com/sabricot/django-elasticsearch-dsl/issues/36
class Web_Technology(models.Model):
web_results = JSONField(blank=True,null=True,default=dict)
Run Code Online (Sandbox Code Playgroud)
{"http://google.com": {"Version": "1.0", "Server": "AkamaiGHost"}}
Run Code Online (Sandbox Code Playgroud)
from elasticsearch_dsl import Index
from django_elasticsearch_dsl import Document, fields
from django_elasticsearch_dsl.registries import registry
from .models import Web_Technology
@registry.register_document
class WebTechDoc(Document):
web_results = fields.ObjectField()
def prepare_web_results(self, instance):
return instance.web_results
class Index:
name = 'webtech'
class Django:
model = Web_Technology
fields = []
Run Code Online (Sandbox Code Playgroud)
`? python3 manage.py search_index --create -f
Creating index '<elasticsearch_dsl.index.Index object at 0x7f5f7b07ed30>'
Traceback (most recent call last):
File "manage.py", …Run Code Online (Sandbox Code Playgroud) django-filter在 Model 的所有默认字段上都可以正常工作,但是当我们想要在 Postgres 字段(例如 JSONField)上使用它时就会出现问题
我有以下模型:
from django.contrib.postgres.fields import JSONField,ArrayField
class MyModel(models.Model):
j_field = JSONField(blank=True,null=True,default=dict)
Run Code Online (Sandbox Code Playgroud)
j_field具有以下结构的数据:
[{"name":"john","work":"developer"},{"name":"cena","work":"teacher"}]
Run Code Online (Sandbox Code Playgroud)
name或work使用来过滤结果?j_fielddjango-filterimport django_filters
class MyModelFilter(django_filters.FilterSet)
class Meta:
model = MyModel
...
...
what's next?
Run Code Online (Sandbox Code Playgroud) django django-templates django-models django-forms django-rest-framework
我们什么时候应该定义db_index=True模型字段?
我正在尝试优化应用程序并想了解更多关于db_index我们应该在哪些条件下使用它?
文档说在模型字段上使用 db_index=True 可以加快查找速度,但在存储和内存方面略有不利。
我们应该db_index=True只在那些具有唯一值的字段上使用,比如主字段id吗?如果我们为那些不唯一且包含重复数据的字段启用索引会发生什么。
我有一个 Django 应用程序,我在其中定义了一些@task函数task.py以在给定的周期性任务中执行。我 100% 确定问题不是由task.py或任何相关代码引起的,而是由于某些配置可能在settings.py或我的芹菜工人中。
任务确实在周期性任务中执行,但会多次执行。
这是芹菜工人日志:
celery -A cimexmonitor worker --loglevel=info -B -c 4
[2019-09-19 21:22:16,360: INFO/ForkPoolWorker-5] Project Monitor Started : APPProject1
[2019-09-19 21:22:16,361: INFO/ForkPoolWorker-4] Project Monitor Started : APPProject1
[2019-09-19 21:25:22,108: INFO/ForkPoolWorker-4] Project Monitor DONE : APPProject1
[2019-09-19 21:25:45,255: INFO/ForkPoolWorker-5] Project Monitor DONE : APPProject1
[2019-09-20 00:22:16,395: INFO/ForkPoolWorker-4] Project Monitor Started : APPProject2
[2019-09-20 00:22:16,398: INFO/ForkPoolWorker-5] Project Monitor Started : APPProject2
[2019-09-20 01:22:11,554: INFO/ForkPoolWorker-5] Project Monitor DONE : APPProject2
[2019-09-20 …Run Code Online (Sandbox Code Playgroud) 我正在使用 Django Postgres ArrayField
response_headers = ArrayField(models.TextField(blank=True),blank=True,null=True,default=list)
Run Code Online (Sandbox Code Playgroud)
假设我们的对象具有以下数据:
obj1 : response_headers = ["dubai","sydney","nyc"]
obj2 : response_headers = ["mumbai","kerela","dubai"]
Run Code Online (Sandbox Code Playgroud)
MyModel.objects.filter(response_headers__contains=['dubai']
Run Code Online (Sandbox Code Playgroud)
会回来obj1,obj2但是
MyModel.objects.filter(response_headers__contains=['duba']
or
MyModel.objects.filter(response_headers__contains=['uba']
Run Code Online (Sandbox Code Playgroud)
不会返回任何对象<QuerySet []>
如何实现在 ArrayField 的所有索引中使用部分模式进行搜索的能力?
django django-templates django-models django-forms django-rest-framework
我有一个以下 simple_tag。
@register.simple_tag
def Test(arg1,arg2)
return arg1+arg2
Run Code Online (Sandbox Code Playgroud)
并在模板中。
<h6>{% Test val.arg1 val.arg2 %}</h6>
Run Code Online (Sandbox Code Playgroud)
现在我想对测试中的上述returned数据应用过滤器simple_tag,
例如,我想对naturaltime返回的数据应用过滤器,如何与简单标签一起执行此操作。
<h6>{% Test val.arg1 val.arg2 | naturaltime %}</h6>
Run Code Online (Sandbox Code Playgroud) django django-templates django-models django-views django-rest-framework
撤销 @periodic_task 发送的任务
Discarding revoked tasks & Due task to workers.
[2018-09-17 12:23:50,864: INFO/MainProcess] Received task: cimexapp.tasks.add[xxxxxxx]
[2018-09-17 12:23:50,864: INFO/MainProcess] Discarding revoked task: cimexapp.tasks.add[xxxxxxx]
[2018-09-17 12:24:00,865: INFO/Beat] Scheduler: Sending due task cimexapp.tasks.add (cimexapp.tasks.add)
[2018-09-17 12:24:00,869: INFO/MainProcess] Received task: cimexapp.tasks.add[xxxxxxx]
[2018-09-17 12:24:00,869: INFO/MainProcess] Discarding revoked task: cimexapp.tasks.add[xxxxxxx]
[2018-09-17 12:24:10,865: INFO/Beat] Scheduler: Sending due task cimexapp.tasks.add (cimexapp.tasks.add)
[2018-09-17 12:24:10,868: INFO/MainProcess] Received task: cimexapp.tasks.add[xxxxxxx]
[2018-09-17 12:24:10,869: INFO/MainProcess] Discarding revoked task: cimexapp.tasks.add[xxxxxxx]
任务.py
@periodic_task(run_every=timedelta(seconds=10),options={"task_id":"xxxxxxx"})
def add():
call(["ping","-c10","google.com"])
def stop():
x = revoke("xxxxxxx",terminate=True,signal="KILL")
print(x) …Run Code Online (Sandbox Code Playgroud) django ×8
django-forms ×3
celery ×2
django-views ×2
python ×2
celery-task ×1
celerybeat ×1
postgresql ×1
python-3.x ×1
redis ×1