django - 带有 Postgresql 的 Django:在本地机器上创建的重复对象和远程服务器上的三重对象
问题描述
我在 DigitalOcean 上有一个带有 Postgresql 的 Django 项目。奇怪的是,当我创建一个对象时,它在远程服务器上被复制了三次,并在本地机器上被复制了。
这是我的模型。
from django.db import models
class Instrument(models.Model):
id = models.CharField(max_length=4, primary_key=True)
def __str__(self):
return self.id
class Quote(models.Model):
instrument = models.ForeignKey(Instrument, on_delete=models.CASCADE,
related_name='quotes')
quote = models.FloatField()
timestamp = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.instrument.id;
这就是我创建对象的方式:
q = Quote(instrument=Instrument.objects.get(pk='GBP'), quote=1.2100)
q.save()
我尝试以不同的方式创建对象:
i = Instrument.objects.get(pk='EUR')
q = Quote.objects.create(instrument=i, quote=1.2000)
我将不胜感激任何意见和想法如何解决它。
我使用 Apscheduler 检索数据并将其存储在 DB 中,每次执行时我在 DB 中有 3 条记录:
{
"instrument": "iEUR",
"quote": 2.19572761275879,
"timestamp": "2019-08-26T23:09:00.540737Z"
},
{
"instrument": "iEUR",
"quote": 2.19572761275879,
"timestamp": "2019-08-26T23:09:00.563785Z"
},
{
"instrument": "iEUR",
"quote": 2.19572761275879,
"timestamp": "2019-08-26T23:09:00.565883Z"
}
解决方案
事实证明,由于 3 个工作人员启动的 Apscheduler 任务而创建了重复项。这是一个类似的问题。
我已经改用 Celery 而不是 Aspscheduler。
推荐阅读
- python - 从折线图中删除小数点
- php - 无法访问 Laravel 模型中的属性
- r - 闪亮的 renderUI 只显示最后一个输出
- unix - 如何去掉页面末尾的空行
- powerbi - Power BI - 加载保存为 .xls 的 *.htm 文件
- mysql - 多个消费者试图更新同一行的 Mysql(5.7 版本)表。如何解决并发更新问题
- django - Django:Updateview inlineformset 错误 - (隐藏字段 id)此字段是必需的
- java - ExceptionHandler 在使用 @Order 和 LOWEST_PRECEDENCE 时捕获 AccessDeniedException?
- php - 想在 laravel 中实现 SOAP API(服务器)
- mysql - 根据按日期字段分组获取数据