1

从 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

如您所见,该功能有效。但是,该文件不会创建. 为什么?

由于可能的权限问题,我尝试更改多个文件路径。但没有运气。

4

3 回答 3

2

如果文件没有被写入,你会得到一个异常,所以函数不可能完成。

由于该函数返回 8,因此文件被写入某处。

也许该文件被写入与您期望的目录不同的目录中

我能想到的唯一另一种可能性是正在运行的 add 函数不是您在此处显示的函数

于 2010-12-29T04:18:32.180 回答
1

我认为问题在于您通过导入模块来运行它。文件路径中的.相对于模块所在的位置,而不是您当前的工作目录。尝试给它一个完整的路径名。

如果这不起作用,请向我们确切说明您从哪里运行脚本以及ls -la在该目录上。如果那仍然没有显示出任何异常。做一个

find / -name abc.txt

于 2010-12-29T04:18:57.187 回答
1
  1. 工作目录可能不是您所期望的。
  2. 如果您使用多台主机,该任务可能会在另一台主机上完成。
于 2010-12-30T17:58:05.110 回答