jna*_*o52 5 django celery django-celery
我目前正在使用Django 1.3和Django-Celery应用程序开展一个项目.顺便说一句,这非常棒,我建议任何不熟悉芹菜的人都会检查出来.
我对管理页面功能有一个具体问题:
我们正在使用celery任务向第三方合作伙伴发出RESTful API调用.这些调用实际上是由用户操作启动的,因此您可以看到芹菜任务在这种情况下如何非常有用.
我们有一个用户故事,讲述管理员如果由于某种原因失败,应该如何能够重新发送回调.现在,如果回调因标准HTTP响应失败而失败,我们将使用芹菜重试机制以不同的间隔自动重新发送它们.但是,这些回调可能是成千上万的合作伙伴之一(是的,很多),而且并非所有合作伙伴都会使用标准的HTTP响应代码作为失败响应.
长话短说,我无法在网上找到任何可以通过管理界面重新发送芹菜任务的内容.我希望有人可以对此有所了解.这似乎是一个非常明显的功能,如果没有这样的功能,我相信它有充分的理由.如果没有办法,如果有人能解释原因,我会喜欢它.只是好奇了解芹菜的内部运作.
感谢大家!对不起我的啰嗦,有时我倾向于絮絮叨叨.
小智 2
你可以尝试两种方法,
1:模型中的小修改:
您可以使用布尔字段并将其命名为 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)
Run Code Online (Sandbox Code Playgroud)
这只是一个想法,你可以自己决定如何以及何时提交回 celery 任务。
2:扩展管理模板:
您可以扩展管理模板并放入指向重新提交任务的视图的超链接。
归档时间: |
|
查看次数: |
826 次 |
最近记录: |