小编Rob*_*ley的帖子

如何在 Docker 容器(Python、Flask 和 Redis)中启动自定义 RQ Worker

我遵循 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)

entry-point redis flask python-rq docker

6
推荐指数
1
解决办法
5105
查看次数

使用相对路径访问并行资源文件夹中的文本文件

您好,感谢您抽出宝贵时间来研究这个问题。

我无法访问与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)

预先感谢您的帮助!

罗宾

Eclipse树视图

java relative-path classloader text-files javafx-8

0
推荐指数
1
解决办法
509
查看次数