Следующие задачи имеют разные требования.Задача slow
должна выполняться только один за другим.Задача fast
может выполнять то же самое (или более), но должна быть независимой от задачи slow
.
Я привязал их к разным очередям, но глобальный параллелизм работает для обеих.Если ее 1
, то задача либо извлекается из одной из двух очередей, либо если она >1
, то медленная задача может иметь более одного выполнения, чего не должно быть.
@app.task
def slow(x, y):
# slow operation, only one at a time with concurrency of 1
heavy_operation_takes_10_minutes()
@app.task
def fast(x, y):
# can also be concurrency of 1 or more, as long as independent of `slow` task
# ...
return x + y
Это возможно с сельдереем?