【发布时间】:2017-05-10 16:27:54
【问题描述】:
tasks.py
from celery import Celery
app = Celery('tasks',
broker='redis://localhost',
backend='redis://localhost',
include=['tasks'])
app.conf.broker_url = 'redis://localhost:6379/0'
# Optional configuration, see the application user guide.
app.conf.update(
result_expires=3600,
)
@app.task
def add(x, y):
return x + y
main.py
from tasks import add
if __name__ == '__main__':
from celery import Celery
app = Celery('tasks', backend='redis://localhost', broker='redis:localhost//')
result = add.delay(4, 4)
result.ready()
value = result.get(timeout=10)
print(value)
我想用 redis(代理和后端)和 celery 向所有工作人员广播任务,但我没有实现,你能帮帮我吗?
【问题讨论】:
-
对不起,我不明白你的评论,请你说得更具体些
-
您在
tasks.py中已经有一个app,并在__main__中创建一个新的。 -
是的,这是真的,我不需要 main.py 中的行:app = Celery('tasks', backend='redis://localhost', broker='redis:localhost// ')
-
你知道,我怎样才能向所有工人广播任务?
-
你试过
tasks.app,因为这个app表现不同。
标签: python redis celery broadcast