2015-03-27 4 views
1

Мне нужен способ асинхронно отправлять методы экземпляра с помощью django-rq. Я попытался это:Асинхронные методы экземпляра с использованием django-rq

MyClass(object): 

@job 
def my_func(self, some_arg): 
    # Do some stuff 

которая не на AttributeError, потому что функция не доступна в пространстве имен уровня модуля.

Кто-нибудь знает хороший способ решить эту проблему, не записывая сквозную функцию на уровне модуля, которая создает объект, а затем вызывает метод? Это то, что я делал, но это так круто.

+0

Нужно ли вообще быть методом? Доступ к каким-либо свойствам класса? Если нет, подумайте о том, чтобы сделать его классом или статическим методом или вообще вывести его из класса. –

+0

Он обладает свойствами класса доступа - эта вещь является отслеживателем событий показателей, и ей нужен ключ API, который хранится в MyClass. –

+0

Вы когда-нибудь находили решение здесь? – Eli

ответ

0

Самый простой способ - сделать ваш метод синхронным и вызвать его в асинхронной функции.

MyClass(object): 
    def my_method(self, some_arg): 
     # Do some stuff 

@job 
def my_function(instance, some_arg): 
    instance.my_method(some_arg) 

 Смежные вопросы

  • Нет связанных вопросов^_^