Есть джанго вью, создается объект модели. После создания вызывается функция 2, в которую предается созданный объект и дальше функция 1 продолжает работу.
def func():
instance = ...create()
func2(instance)
instance.attr = attr
etc...
Функция 2 связана с HTTP запросами.
def func2(instance):
request = request(instance)
wait response
response.data.save()
Результаты работы двух функций никак не связаны. Все что требуется, это запустить функцию 2 из функции 1 и при этом не заблокировать функцию 1.
В данной редакции проекта, вызов функции 2 делается через селери разовой задачей. Мне кажется это сильно излишне и лучше просто запустить отдельным потоком.
Как то так:
def func():
...
instance = ...create()
thread = threading.Thread(target=func2, args=instance)
thread.run()
instance.attr = attr
etc...
Или я ошибаюсь?