我在django应用程序中有这些行。它们在正常情况下运行良好,但当我把它们称为芹菜任务时,似乎什么都没发生。我甚至找不到报告的错误。有人能告诉我哪里可能出错吗?
cmd = "/path/to/unzipped_s3cmd/s3cmd get s3://%s %s/"
subprocess.call(cmd % (s3path,localpath), shell=True)
我正在django用户下运行芹菜任务。
这可能是因为模块subprocess
没有导入到您的函数中。这意味着芹菜任务没有看到模块subprocess
,因为该任务将运行到自己的进程/thread/greenlet中。
示例:
@task def some_function(): import subprocess cmd = "/path/to/unzipped_s3cmd/s3cmd get s3://%s %s/" sp = subprocess.call(cmd % (s3path,localpath), shell=True) return sp.returncode
我想这一定与s3cmd的路径或用户权限有关。我刚刚使用ubuntu包存放库安装了s3cmd,而不是进行本地解压缩,现在它可以很好地与芹菜配合使用。