django -芹菜-从管理页面重新提交任务



我目前正在做一个项目,使用Django 1.3和Django-芹菜应用程序。它非常棒,顺便说一下,我建议任何不熟悉芹菜的人看看它。

我有一个关于管理页面功能的具体问题:

我们使用芹菜任务对第三方合作伙伴进行RESTful API调用。这些调用实际上是由用户操作启动的,因此您可以看到在这种情况下,芹菜任务是如何非常有用的。

我们有一个用户故事,关于管理员应该如何能够重新发送回调,如果它失败的原因。现在,如果回调因标准HTTP响应失败而失败,我们将使用芹菜重试机制以不同的间隔自动重新发送它们。然而,这些回调可能是对数千个合作伙伴中的任何一个(是的,有很多),并且并不是所有的合作伙伴都将使用标准的HTTP响应代码作为失败响应。

长话短说,我没能在网上找到任何可以通过管理界面重新发送芹菜任务的东西。我希望有人能解释一下。这似乎是一个非常明显的功能,如果没有这样的功能,我相信有一个很好的理由。如果没有办法,如果有人能解释原因,我会很高兴。只是想了解更多关于芹菜的内部工作原理。

谢谢大家!很抱歉我啰嗦了,有时候我有点东拉西扯。

您可以尝试两种方法,

1: Small hack in model:

你可以使用布尔字段,并将其命名为celery_retry,并在模型保存方法中做这样的事情。

def save(self, *args, **kwargs):
    if self.celery_retry and self.user.is_superuser():
          celery_task.apply_async()
    self.celery_retry = False
    super(MyModel, self).save(*args, **kwargs)

这只是一个想法,你可以自己决定如何和何时提交芹菜任务。

2:Extend admin template:

您可以扩展admin模板,并放入一个超链接到重新提交任务的视图

相关内容

  • 没有找到相关文章

最新更新