所以我们在Elastic Beanstalk(运行Python 3.4的64位Amazon Linux 2016.09 v2.3.3)上有一个实例,它有3个并发进程在运行。我有一个缓存数据的库,但是我试图访问相同的缓存数据时遇到了三个进程的错误。
我提出的解决方案是在缓存路径中使用进程ID(PID),因此没有两个进程共享缓存(例如:/tmp/.prose/3443,其中3443是PID)。
我尝试使用容器命令,但似乎这些不会针对每个单独的进程运行,仅在部署时运行。
我还尝试了os.mkdir
,os.makedirs
,os.system('sudo mkdir ...')
的各种方法,如果没有sudo,我总是会收到权限被拒绝错误。所有这些mkdir调用后跟等效的os.system("chmod 777 -R {1}".format(cache_dirname))
或os.chmod(path, 0o777)
。我试过用sudo调用它,但无法输入密码。我考虑过编辑sudoers文件,但是当我们重新部署一个新实例时,编辑必须以编程方式进行编辑才能出现,所以这似乎很难。
有没有人对我在Elastic Beanstalk上动态创建这些目录应该怎么做?