我遵循 Miguel Grinberg 的优秀 Flask Mega 教程,成功设置了一个带有 Redis 任务队列和 RQ 工作线程的 Flask Web 应用程序,所有这些都在 Docker 容器中。
为了提高任务队列性能,我现在需要使用自己的自定义工作线程,而不是默认的 RQ 工作线程。
不幸的是,我很难理解如何在 docker 中启动自定义工作线程。
要启动默认的 RQ Worker,Flask Mega 教程使用以下方法:使用“venv/bin/rq”覆盖 Docker 入口点,然后提供参数“worker -u redis://redis-server:6379/0 microblog-tasks” ”。
可执行文件名称由 --entrypoint 标志提供,而命令参数在容器映像名称之后的最后传递。
这是完整的命令 - 只有最后两行与这个问题相关。
$ docker run --name rq-worker -d --rm -e SECRET_KEY=my-secret-key \
-e MAIL_SERVER=smtp.googlemail.com -e MAIL_PORT=587 -e MAIL_USE_TLS=true \
-e MAIL_USERNAME=<your-gmail-username> -e MAIL_PASSWORD=<your-gmail-password> \
--link mysql:dbserver --link redis:redis-server \
-e DATABASE_URL=mysql+pymysql://microblog:<database-password>@dbserver/microblog \
-e REDIS_URL=redis://redis-server:6379/0 \
--entrypoint venv/bin/rq \
microblog:latest worker -u redis://redis-server:6379/0 microblog-tasks …Run Code Online (Sandbox Code Playgroud) 您好,感谢您抽出宝贵时间来研究这个问题。
我无法访问与src文件夹平行的文件夹中的文本文件(有关结构,请参见下文)。
我发现最接近的解释是:https : //www.cis.upenn.edu/~matuszek/cit597-2006/Pages/finding-files.html ,我遇到了许多类似的问题,但我都没有不幸的是可以推断出答案。
我知道我可以使用绝对路径,但是我想确保该软件可以在其他人的计算机上运行,所以这是不行的。因此,我试图使其与相对路径一起使用。
另外,建议在这里进行以下建议:https : //coderanch.com/t/464197/java/java/Reading-files-directory-giving-relative为了使此代码在JAR文件中起作用,必须使用getResourceAsStream()。有人可以建议吗?
我正在尝试从RecipeReader.java中访问Recipes.txt,到目前为止,这是我的代码:
Class thisClass = this.getClass();
ClassLoader loader = thisClass.getClassLoader();
URL recipeFileURL = loader.getResource("Recipes.txt");
String path = recipeFileURL.getPath();
path.replaceAll("%20", " ");
BufferedReader input = new BufferedReader(new FileReader(path));
Run Code Online (Sandbox Code Playgroud)
并类似地写入同一文件:
Class thisClass = this.getClass();
ClassLoader loader = thisClass.getClassLoader();
URL recipeFileURL = loader.getResource("Recipes.txt");
String path = recipeFileURL.getPath();
path.replaceAll("%20", " ");
BufferedWriter output = new BufferedWriter(new FileWriter(path));
Run Code Online (Sandbox Code Playgroud)
预先感谢您的帮助!
罗宾
classloader ×1
docker ×1
entry-point ×1
flask ×1
java ×1
javafx-8 ×1
python-rq ×1
redis ×1
text-files ×1