小编Tur*_*gut的帖子

Django google kubernetes 客户端未在作业内运行 exe

我有一个 docker 镜像,我想在 django 代码中运行它。在该图像内有一个我使用 C++ 编写的可执行文件,它将其输出写入谷歌云存储。通常当我像这样运行 django 代码时:

container = client.V1Container(name=container_name, command=["//usr//bin//sleep"], args=["3600"], image=container_image, env=env_list, security_context=security)
Run Code Online (Sandbox Code Playgroud)

并手动进入容器内部运行以下命令:

gcloud container clusters get-credentials my-cluster --region us-central1 --project proj_name  && kubectl exec pod-id -c jobcontainer -- xvfb-run -a "path/to/exe"
Run Code Online (Sandbox Code Playgroud)

它按预期工作并将输出发送到云存储。(我需要使用虚拟监视器,所以我首先使用 xvfb)。但是我必须通过 django 调用它,如下所示:

container = client.V1Container(name=container_name, command=["xvfb-run"], args=["-a","\"path/to/exe\""], image=container_image, env=env_list, security_context=security)
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时,作业被创建但从未完成,并且不会向存储发出输出。当我进入容器运行时,ps aux我得到以下输出:

USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.0  0.0   2888  1836 ?        Ss   07:34   0:00 /bin/sh /usr/bin/xvfb-run -a "path/to/exe"
root          16 …
Run Code Online (Sandbox Code Playgroud)

python django google-cloud-storage google-cloud-platform kubernetes

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

声明了 '[[noreturn]]' 但它的第一个声明不是

我最近了解了该[[noreturn]]属性,并想尝试在我现有的代码片段之一上实现它。

\n

我将该属性添加到一个没有任何return;关键字的 void 返回类型函数中。但是,我收到此错误:

\n
[ 17%] Building CXX object CMakeFiles/Renderer.dir/src/opengl/text_render.cpp.o\n/home/turgut/Desktop/CppProjects/videoo-render/src/opengl/text_render.cpp:7:25: error: function \xe2\x80\x98const void OpenGL::Text::set_background(int, int, float, int, int, int, int, float, std::string*)\xe2\x80\x99 declared \xe2\x80\x98[[noreturn]]\xe2\x80\x99 but its first declaration was not\n    7 | [[noreturn]] const void Text::set_background(\n      |   \n\nmake[2]: *** [CMakeFiles/Renderer.dir/build.make:132: CMakeFiles/Renderer.dir/src/opengl/text_render.cpp.o] Error 1\nmake[1]: *** [CMakeFiles/Makefile2:277: CMakeFiles/Renderer.dir/all] Error 2\nmake: *** [Makefile:136: all] Error 2\n\n
Run Code Online (Sandbox Code Playgroud)\n

我使用的是 c++ 20+ 所以我不认为版本有问题。

\n

我的使用有什么问题[[noreturn]]以及我应该如何正确使用它?我是否缺少这方面的知识?

\n

这是有问题的函数:

\n
[[noreturn]] void Text::set_background(\n    int x, int y, float …
Run Code Online (Sandbox Code Playgroud)

c++ c++20

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

pthread 互斥对象必须是易失性的吗?

在学习了常规线程之后,我正在学习 pthreads。通常,当我们使用布尔线程对象时,我们将其声明为易失性对象,如下所示volatile bool thread_lock;:我们是否也需要在 pthread 对象上执行此操作,特别是在pthread_mutex_t需要时或它自己处理它?

我查看了该pthread_mutex_t声明,发现它没有 易失性声明。

应该是volatile pthread_mutex_t my_obj;还是pthread_mutex_t my_obj;

c++ multithreading pthreads

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