【问题标题】:Asynchronous instance methods using django-rq使用 django-rq 的异步实例方法
【发布时间】:2015-05-31 08:30:39
【问题描述】:

我需要一种使用 django-rq 异步调度实例方法的方法。我试过这个:

MyClass(object):

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

在 AttributeError 上失败,因为该函数在模块级命名空间中不可用。

任何人都知道解决这个问题的好方法,而无需在模块级别编写传递函数来实例化对象然后调用方法?这就是我一直在做的,但它看起来很笨拙。

【问题讨论】:

  • 它是否需要成为一种方法?它是否访问任何类属性?如果没有,请考虑将其设为类或静态方法,或者将其完全移出类。
  • 它确实访问了类属性——这个东西是一个度量事件跟踪器,它需要一个存储在 MyClass 上的 API 密钥。
  • 您在这里找到解决方案了吗?

标签: python django asynchronous django-rq


【解决方案1】:

最简单的方法是使您的方法同步并在异步函数中调用它。

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

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

【讨论】:

    猜你喜欢
    • 2021-05-04
    • 1970-01-01
    • 2016-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-17
    • 2017-04-11
    • 1970-01-01
    相关资源
    最近更新 更多