我的任务一次只能执行一次 我尝试了一些基于这个link和这个link的东西
@contextmanager
def redis_lock(task_name):
lock = REDIS_CLIENT.lock("lock-{}".format(task_name))
status = False
try:
status = lock.acquire(blocking)
yield status
finally:
if status:
lock.release()
但是,如果我只有2个进程,所有进程都会被阻塞,如果我有另一个任务,它也会等待。此外,我不确定这些任务是否会以相同的顺序执行。你知道吗
我已经尝试了很多其他的解决方案,但我所寻找的基本上是得到一个类型的最后一个任务,然后作为(不工作)的东西
def another_function(task_uuid):
task = app.Task(task_uuid)
task.link = my_task.s()
if __name__ == "__main__":
task1 = my_task.delay()
task_uuid = task1.id
another_function(task_uuid)
所有任务都将按此顺序执行。
好像我在调用一个AsyncResult
的link
方法
谢谢你的帮助
编辑: 也许我可以按任务创建特殊队列,但我在文档中找不到方法来限制给定队列的进程数
目前没有回答
相关问题 更多 >
编程相关推荐