要解决"不尊重工作指令/限制(workers = '...',allow_other_workers = False)"的问题,可以使用以下代码示例:
from celery import Celery
app = Celery('myapp', broker='pyamqp://guest@localhost//')
@app.task(bind=True, ignore_result=True)
def my_task(self):
# 检查是否允许其他工作者
if not self.app.conf.allow_other_workers:
# 如果不允许其他工作者,则检查当前工作者是否有效
if self.request.hostname not in self.app.conf.workers:
# 如果当前工作者不在工作者列表中,则抛出异常
raise ValueError('Invalid worker')
# 执行任务代码
# ...
if __name__ == '__main__':
app.start()
在上面的示例中,我们使用Celery创建了一个名为"myapp"的应用程序,并设置了一个任务my_task
。在任务中,我们首先检查allow_other_workers
属性是否为False。如果是,则进一步检查当前工作者的主机名是否在workers
列表中。如果不是,则抛出一个值错误。
请注意,上述示例中的workers
和allow_other_workers
是示例参数,您需要根据您自己的需求进行相应的更改和配置。
上一篇:不尊重 if 语句