Python中文
首页
教程
问答
标签
搜索
登录
注册
使用类方法作为芹菜任务
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我尝试使用类的方法作为django芹菜任务,使用@task decorator标记它。阿南德·杰亚哈尔也提出了同样的问题。 是这样的</p> <pre><code>class A: @task def foo(self, bar): ... def main(): a = A() ... # what i need a.foo.delay(bar) # executes as celery task a.foo(bar) # executes locally </code></pre> <p>问题是,即使我使用这样的类实例,它也会说,<code>a.foo.delay(bar)</code>至少需要两个参数,这就需要<code>self</code>指针未命中。</p> <p>更多信息:</p> <ul> <li>由于继承原因,我无法将类转换为<em>模块</em></li> <li>方法强烈依赖于类成员,因此我不能使它们静态化</li> <li>使用@task decorator将<em>类</em>标记为任务会使类本身成为一个任务,并且可以使用一些参数作为方法选择的键,从<code>run()</code>方法执行方法,但这并不是我想要的。</li> <li>创建类的实例并将其作为<code>self</code>参数传递给方法会改变我执行方法的方式,而不是像芹菜那样,而是像通常的方法一样(即在测试时)</li> <li>我试着从构造器中找出如何用语言注册任务,但是芹菜在工人之间共享代码,所以这看起来是不可能的。</li> </ul> <p>谢谢你的帮助!</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>当你有:</p> <pre><code> a = A() </code></pre> <p>你可以:</p> <pre><code> A.foo.delay(a, param0, .., paramN) </code></pre> <p>干杯</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
使用Python创建一个非常大的二进制频率矩阵来运行协作过滤
8 回答
使用Python创建一张HTML网页,其中在不同颜色中重复n遍显示“Hello World”的方法
6 回答
使用Python创建一组唯一的值length L
8 回答
使用python创建不同表格的透视表
8 回答
使用python创建不和谐频道
10 回答
使用python创建不存在的多个文件夹
1 回答
使用python创建串行远程文件
4 回答
使用python创建交互式仪表板时出现问题
2 回答
使用python创建交互式绘图
5 回答
使用python创建交互式自动电子邮件
4 回答
使用Python创建价格列表
9 回答
使用python创建修改的txt文件
3 回答
使用Python创建全局变量,初始化后更改值
3 回答
使用Python创建关键字搜索词数组
4 回答
使用Python创建具有不均匀块大小/堆叠条形图的热图
2 回答
使用Python创建具有依赖于另一列的值的列
6 回答
使用Python创建具有多列的HTML表
6 回答
使用Python创建具有时间范围数据的等距数据帧
10 回答
使用Python创建具有特定顺序或属性的XML文件
6 回答
使用Python创建具有级联功能的搜索栏
2 回答