小编dro*_*dil的帖子

使用exec-maven-plugin运行守护进程避免"IllegalThreadStateException"

我想运行一个应该在maven包阶段开始的守护程序线程.这是我在pom.xml中的内容:

<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.2.1</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>java</goal>
                    </goals>
                </execution>                                
            </executions>
            <configuration>
                 <mainClass>com.test.Startup</mainClass>
                 <cleanupDaemonThreads>true</cleanupDaemonThreads>
            </configuration>
       </plugin>
  </plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

以下是Startup类的内容:

public class Startup {

    public static class Testing extends Thread {
        @Override
        public void run() {
            while(true) {
                System.out.println("testing..");
            }
        }
    }

    public static void main(String[] list) throws Exception {
        Testing t = new Testing();
        t.setDaemon(true);
        t.start();
    }
}
Run Code Online (Sandbox Code Playgroud)

线程开始运行但编译在线程运行时停止.经过一段时间(超时或其他)后,线程停止并继续编译.无论如何,我可以让这个线程在后台开始,并使编译继续自己?

maven的一些输出:

[WARNING] thread Thread[Thread-1,5,com.test.Startup] was interrupted but is still alive after waiting at least 15000msecs
[WARNING] thread …
Run Code Online (Sandbox Code Playgroud)

jboss java-ee maven exec-maven-plugin

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

将参数从 ctest 传递给 gtest

我正在使用 gtest 为我的应用程序编写单元测试。我还有 ctest 运行 add_test CMake 命令添加的所有可执行文件。测试执行开始时是否可以通过 ctest 传递 gtest 变量?

例如,我想有时使用 --gtest_filter 标志过滤掉测试,但我不知道如何或是否可以通过 ctest 进行测试?我尝试了以下方法:

ctest --gtest_filter=AppTest.*
ctest --test-arguments="--gtest_filter=AppTest.*"
Run Code Online (Sandbox Code Playgroud)

但是两者仍然运行所有测试而不是过滤的测试。

谢谢!

cmake googletest ctest

10
推荐指数
2
解决办法
3579
查看次数

使用MySQL 5.6版从源代码编译PHP

我正在尝试从源代码编译PHP以使ZTS正常工作.我有PHP的源代码,我尝试安装依赖项

apt-get build-dep php5

我也为Ubuntu 14.04LTS安装了MySQL 5.6,我在命令后收到此错误:

以下软件包具有未满足的依赖项:mysql-server:取决于:mysql-server-5.5但不会安装E:无法满足php5的构建依赖性.

无论如何都要绕过这种依赖,因为MySQL 5.6与预构建的PHP5一起运行正常但我无法开始编译,因为缺少依赖项?谢谢!

php mysql mysql-5.6 ubuntu-14.04

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

以编程方式在辅助bean中创建和添加复合组件

我正在使用动态仪表板,用户可以根据需要固定和删除项目.现在我遇到一个问题,我想将现有的复合组件添加到支持bean的视图中.我试图从互联网上找到正确的方法,但到目前为止还没有成功.这是我想要添加的简单复合组件:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:cc="http://java.sun.com/jsf/composite"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:p="http://primefaces.org/ui"
      xmlns:composite="http://java.sun.com/jsf/composite">
    <!-- INTERFACE -->
    <cc:interface>

    </cc:interface>

    <!-- IMPLEMENTATION -->
    <cc:implementation>
        <h:outputText value="TEST"/>
    </cc:implementation>
</html>
Run Code Online (Sandbox Code Playgroud)

这是应该返回复合组件的代码:

public static UIComponent getCompositeComponent(String xhtml, String namespace) {
    FacesContext fc = FacesContext.getCurrentInstance();
    Application app = fc.getApplication();
    Resource componentResource = app.getResourceHandler().createResource(xhtml, namespace);

    UIPanel facet = (UIPanel) app.createComponent(UIPanel.COMPONENT_TYPE);
    facet.setRendererType("javax.faces.Group");
    UIComponent composite = app.createComponent(fc, componentResource);
    composite.getFacets().put(UIComponent.COMPOSITE_FACET_NAME, facet);

    return composite;
}
Run Code Online (Sandbox Code Playgroud)

这是我如何使用该功能:

Column column = new Column();
UIComponent test …
Run Code Online (Sandbox Code Playgroud)

facelets dynamic composite-component jsf-2

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

棘轮多个服务器

我在我的PHP应用程序中将Ratchet(http://socketo.me/)用于websockets。我有多个运行该应用程序的虚拟机,每个虚拟机还托管websocket服务。通过HAProxy将请求传递到这些虚拟机之一。同样,当前用户还在为应用程序连接的同一节点上使用websocket服务。

现在我与websocket服务器互相讨论有问题。例如:

  • 用户1连接到节点1,用户2连接到节点2
  • User1通过websocket向用户2发送websocket消息
  • User2从未收到此消息,因为他已连接到另一个节点

进行此类消息传递的良好实践是什么?我有一些想法,但不确定该怎么走:

  1. 每个客户端都连接到每个websocket节点。
  2. 服务器也将消息发布到所有其他节点
  3. 使用数据库在节点之间同步消息

如果将新节点连接到云,则第一个和第二个选项的伸缩性都不太好。第三个选项将导致一些滞后,因为有必要检查来自其他节点的消息是否在数据库循环中。

还有其他选择来处理这种情况吗?感谢您的回答!

php haproxy ratchet

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

Redux RTK 查询:仅使列表中的单个元素无效

我为 RTK 查询定义了以下 API:

export const postsApi = createApi({
  reducerPath: "postsApi",
  baseQuery: fetchBaseQuery({ baseUrl: 'https://myservice.co/api/v2/' }),
  tagTypes: ["Posts"],
  endpoints: (builder) => ({
    getAllPosts: builder.query({
      query: () => ({ method: "GET", url: "/posts" }),
      transformResponse: (response) => response.posts,
      providesTags: (result) =>
        result
          ? [
              ...result.map(({ id }) => ({ type: "Posts", id })),
              { type: "Posts", id: "LIST" },
            ]
          : [{ type: "Posts", id: "LIST" }],
    }),
    updatePost: builder.mutation({
      query: ({ postId, ...body }) => ({
        url: `/posts/${postId}`,
        method: "POST", …
Run Code Online (Sandbox Code Playgroud)

javascript redux react-redux rtk-query

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