0
我使用芹菜與RabbitMQ。僅限本地消息隊列?
對於我的使用案例,我肯定會遇到應該在任何給定節點上執行消息的情況,但是對於一個特定隊列,我需要在原始服務器上執行只有的事情。這是因爲它的工作原理與僅本地文件:
@celery.task
def calculate_hash(filename):
target = Models.objects.get(filename=filename)
hasher = hashlib.md5()
with open(filename, "rb") as f:
chunk = f.read(64 * 1024)
while len(chunk) > 0:
hasher.update(chunk)
chunk = f.read(64 * 1024)
target.hash = hasher.hexdigest()
target.save()
很顯然,當filename
實際存在上述任務纔有意義,這是不太可能,它會同時在多個節點上存在。
有沒有辦法指定給定的任務只能在本地執行?