在我的Django项目中,我必须在后台重复进行一些处理.这个处理需要访问Django的东西,所以我将它放入Django的命令并以cronjob的形式运行.现在我意识到,我必须更频繁地做一些事情(cronjob最多每1分钟调用一次命令).另一个问题是我没有足够的控制权来保护一次运行相同的命令.当一次处理花费超过一分钟时就会发生这种情况.我认为我应该像守护进程一样运行它们,但我正在寻找纯粹的方法来使用Django.您是否遇到过这个问题或者知道任何干净的解决方案?
这是设计问题.
让我们假设我们在Django中有这种模型:
class Payment(models.Model):
purchase = ForeignKeyField(Purchase)
net_price = DecimalField()
is_accepted = BooleanField()
def set_accept(self):
# there will be some logic, which touch purchase, send emails etc.
def price_with_tax(self):
return net_price * (1. + TAX)
Run Code Online (Sandbox Code Playgroud)
我们还有另一个名为actions.py的文件,我们在那里执行其他操作.我们的问题是要确定哪种方法应该放在models.py,这在actions.py.你知道任何常见的方法,指南或类似的东西吗?我想尽可能多地使用现有的解决方案.
谢谢