celery. Запуск одной задачи последовательно
Почитайто про routing. Надо эти задачи отправить в отдельную очередь и настроить только один воркер, обрабатывающий эту очередь, а в нем разрешить тольо один поток. Это единственный способ, если вы хоите использовать только celery.
Если нужна еще надежность, нужна сторонная реализация многомашинного lock'а, задачу выполнять под ним. Также, как и в первом случае лучше настроить отдельную очередь но уже с несколькими воркерами.
Если используете uWSGI. Как альтернатива (не гарантирую что всё будет гладко, сам на практике не пробовал), но можно поэксперементировать: отказать от сэлэри и использовать встроенные механизмы uwsgi используя декораторы spool и lock projects.unbit.it/uwsgi/wiki/Decorators. Если решитись попробвать — отпишите о результатах, пожалуйсто, и с какими ограничениями и проблемами столкнулись.