姜戈芹菜应用程序与计时器



我的 django 芹菜应用程序有问题。假设我有两个相关的模型 - 交易和账户。我正在通过我的 API 推送事务。我想要实现的是计算指定帐户的余额。

我有一个计算余额的芹菜任务。问题是我每个帐户都需要一个计时器,设置为 eg。60秒。当同一帐户的交易即将到来时,计时器再次设置为 60。我想这样做,因为我不想多次运行相同的任务。当指定帐户的交易在 60 秒内没有发生时,则应执行任务。

任何架构建议如何实现这一目标?事实上,我只是不知道如何设置这些"计时器"。

感谢您的回答!

你可以遵循 django-celery-transactions 的 aproach。它们对Task类进行子类化,以便自定义执行逻辑。

对于您的情况,您应该自定义apply_async以检查在接下来的 60 秒内是否有排队的任务要执行(为此,您将使用 Celery API 来检查工作人员)。如果已经存在计划任务,则可以忽略当前任务的执行;如果没有,请将将来的执行时间设置为 60 秒,并调用 super().apply_async(...) 方法。

相关内容

  • 没有找到相关文章

最新更新