[Python] Celery task schedule (Ensuring a task is only executed one at a time)

Discussão em 'Python' iniciado por Stack, Abril 18, 2025.

  1. Stack

    Stack Membro Participativo

    I have a task, somewhat like this:

    @task()
    def async_work(info):
    ...


    At any moment, I may call async_work with some info. For some reason, I need to make sure that only one async_work is running at a time, other calling request must wait for.

    So I come up with the following code:

    is_locked = False
    @task()
    def async_work(info):
    while is_locked:
    pass
    is_locked = True
    ...
    is_locked = False


    But it says it's invalid to access local variables... How to solve it?

    Continue reading...

Compartilhe esta Página