来自celery.decorators导入任务
from celery.decorators import task
@task()
def add(x, y):
r = open("./abc.txt","w")
r.write("sdf")
r.close()
return x + y
这是我的tasks.py文件。
>>> import tasks
>>> r = tasks.add.delay(3,5)
>>> r.result
8
如您所见,该功能有效。但是,文件无法创建。 为什么?
由于可能存在权限问题,我尝试更改多个文件路径。但没有运气。
答案 0 :(得分:2)
如果没有写入文件,则会出现异常,因此无法完成该功能。
由于函数返回8,因此文件正在某处写入。
也许该文件写在与您期望的目录不同的目录中
我能想到的唯一另一种可能性是正在运行的添加功能不是您在此处显示的功能
答案 1 :(得分:1)
我认为问题在于你是通过导入模块来运行它的。文件路径中的.
是相对于模块所在的位置,而不是当前的工作目录。尝试给它一个完整的路径名称。
如果这不起作用,请告诉我们您正在运行脚本的确切位置以及该目录中的ls -la
。如果那仍然没有显示任何异常。做一个
find / -name abc.txt
答案 2 :(得分:1)