python - 是否可以在任务本身的包装器中调用 celery 任务的延迟?
问题描述
我有以下配置:
class Foo:
def __init__(self, services: List[str]):
self.services = services
def enqueuer(self, func):
def wrapper(*args, **kwargs):
if not args[1] in self.services:
raise ForbiddenServiceError
return func.delay(*args, **kwargs)
return wrapper
@enqueuer
@celery_app.task()
def foo_task(self, data, service: str):
time.sleep(10)
print(f"Received the service: {service} with data: {data}")
foo = Foo(["service1", "service2"])
foo.foo_task("Dummy data", "service1")
此配置是否会与调用func.delay(*args, **kwargs)
?
因为,我得到的错误是TypeError: enqueuer() missing 1 required positional argument: 'func'
任何帮助深表感谢!
解决方案
推荐阅读
- hyperledger - 如何更改 Hyper Ledger Composer Playground 的监听端口?
- r - 曼哈顿地块以透明背景保存
- python - 在waf中指定不同的编译器
- java - 在使用 Selenium Webdriver 之前无法找到并单击复选框::
- angular - 在承诺茉莉花之后检查“这个”值
- javascript - 迭代和映射 json 并将它们绘制成绘图图
- python - 文本中术语的二阶共现
- laravel-5.7 - Twilio - Laravel 问题 - 创建客户端需要凭据
- javascript - 为什么我在输入中看到 [object Object]?
- julia - Julia 中的 MATLAB interp2 函数