GVKun编程网logo

关于hover的一些问题(有关hover的短语)

7

在本文中,我们将带你了解关于hover的一些问题在这篇文章中,我们将为您详细介绍关于hover的一些问题的方方面面,并解答有关hover的短语常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的

在本文中,我们将带你了解关于hover的一些问题在这篇文章中,我们将为您详细介绍关于hover的一些问题的方方面面,并解答有关hover的短语常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的c# – 关于HL7监听器的一些问题、python使用logger的一些问题、Python的一些工具包和Ubuntu使用中遇到的一些问题、vertx的一些问题

本文目录一览:

关于hover的一些问题(有关hover的短语)

关于hover的一些问题(有关hover的短语)

总结

以上是小编为你收集整理的关于hover的一些问题全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

c# – 关于HL7监听器的一些问题

c# – 关于HL7监听器的一些问题

我想在C#中构建一个HL7监听器.我们已经在解析作为文本文件发送给我们的消息并将它们导入数据库,因此我了解HL7消息是什么以及如何解析它们.

我关于听众的主要问题.监听器只是一个TCP监听器吗?如果是这样,我可以组合一个基本的TCP侦听器来获取消息并解析结果,将它们导入我们的数据库吗?

我的第二个问题是关于ACK.我对此的理解仅仅是收到消息后发送回发件人的消息.它只是另一个指定为响应消息的HL7消息.

我的理解是正确的吗?此外,如果任何人有任何额外的信息或指示,我将不胜感激任何帮助.

解决方法

是的,它只是一个简单的TCP侦听器.

要确认一条消息,您必须返回一条MSH消息,该消息看起来像这样:

<11> this means a byte represented in a decimal value. this is VT from the ascii table.    

<11>MSH|^~\&|KS||LAB||20040915080800||ACK|59793000678|P|2.2|59793000678<13>
MSA|AA|59793000678<13>
<28><13>

你应该看看:http://nhapi.sourceforge.net/home.php

python使用logger的一些问题

python使用logger的一些问题

使用python的logger日志包,遇到以下问题,日志信息每次增加1行,而且都是重复的,现象如下:
2021-03-21 11:35:30,864 - [INFO] - 2021-03-21 11:35:30,num:1
2021-03-21 11:35:34,284 - [INFO] - 2021-03-21 11:35:34,num:2
2021-03-21 11:35:34,284 - [INFO] - 2021-03-21 11:35:34,num:2
2021-03-21 11:35:37,701 - [INFO] - 2021-03-21 11:35:37,num:3
2021-03-21 11:35:37,701 - [INFO] - 2021-03-21 11:35:37,num:3
2021-03-21 11:35:37,701 - [INFO] - 2021-03-21 11:35:37,num:3
2021-03-21 11:35:41,130 - [INFO] - 2021-03-21 11:35:41,num:4
2021-03-21 11:35:41,130 - [INFO] - 2021-03-21 11:35:41,num:4
2021-03-21 11:35:41,130 - [INFO] - 2021-03-21 11:35:41,num:4
2021-03-21 11:35:41,130 - [INFO] - 2021-03-21 11:35:41,num:4
2021-03-21 11:35:44,574 - [INFO] - 2021-03-21 11:35:44,num:5
2021-03-21 11:35:44,574 - [INFO] - 2021-03-21 11:35:44,num:5
2021-03-21 11:35:44,574 - [INFO] - 2021-03-21 11:35:44,num:5
2021-03-21 11:35:44,574 - [INFO] - 2021-03-21 11:35:44,num:5
2021-03-21 11:35:44,574 - [INFO] - 2021-03-21 11:35:44,num:5
2021-03-21 11:35:47,962 - [INFO] - 2021-03-21 11:35:47,num:6
2021-03-21 11:35:47,962 - [INFO] - 2021-03-21 11:35:47,num:6
2021-03-21 11:35:47,962 - [INFO] - 2021-03-21 11:35:47,num:6
2021-03-21 11:35:47,962 - [INFO] - 2021-03-21 11:35:47,num:6
2021-03-21 11:35:47,962 - [INFO] - 2021-03-21 11:35:47,num:6
2021-03-21 11:35:47,962 - [INFO] - 2021-03-21 11:35:47,num:6

......

 

问题解决,梳理代码,做了一下改正:

logfile = time.strftime("%Y-%m-%d", time.localtime()) + ".log"
        while True:
            ln= logger(logfile ).log()
            ln.info("xxxxx")


改正:
        logfile = time.strftime("%Y-%m-%d", time.localtime()) + ".log"
        ln= logger(logfile ).log()
        while True:
            ln.info("xxxxx")

 

原因分析:

python logger的一些问题
logging的logger模块是被缓存的,如果多次获取logger,多次调用addHanlder添加Hanlder,则此logger的Handler会越来越多,而每个Handler都会打印一次日志。会发生1/2/3/4/5/6/7重复的日志记录信息等等


 

Python的一些工具包和Ubuntu使用中遇到的一些问题

Python的一些工具包和Ubuntu使用中遇到的一些问题

写在前面:最近在做一些东西,平台是Ubuntu16.04,用Putty登陆远程的主机,WinSCP挂载代码,这可以说是我第一次接触Linux操作系统,所以其中遇到了很多奇奇怪怪的问题,也看了很多帖子,但有些问题老是会碰到,与其每次都去查不如自己写个总结,反正现在在上网课,闲着也是闲着哈哈哈,此帖不定期更新,直到东西做完为止……

VMware Tools的安装

网上的方法很多,我自己实验有用的方法是
1、点击虚拟机->安装vmtools
2、把一个tar.gz拖到一个你知道的地方,比如/Downloads
3、sudo su进入root身份
4、cd /home/python/Downloads 目录就是之前的目录
5、tar -zxvf VMwaretools-10.0.0-2977863.tar.gz 解压的文件名记得看清楚
6、cd vmware-tools-distrib进入这个文件夹 ./vmware-install.pl运行pl文件
7、之后会弹出一大堆内容,记住yes/no的全部选yes,其他全部回车default
== 到中后段一堆路径后会弹出一个yes/no,需要注意 ==

root自动登录

引用自:https://blog.csdn.net/hxh5801050/article/details/77801050
慎用,有时一劳永逸有时贼jb坑,我这里是Ubuntu16.04,其他版本的可能会不同
1、给root用户设置密码sudo passwd root
2、编辑一个文件sudo gedit /etc/lightdm/lightdm.conf
内容是

[Seat:*]
autologin-guest=false
autologin-user=root
autologin-user-timeout=0
greeter-session=lightdm-gtk-greeter

3、编辑另一个文件sudo gedit /root/.profile
内容是

# ~/.profile: executed by Bourne-compatible login shells.

if [ "$BASH" ]; then
  if [ -f ~/.bashrc ]; then
    . ~/.bashrc
  fi
fi

tty -s && mesg n || true

4、sudo reboot重启

终端分割

因为要同时登陆多台主机,所以用终端分割方便一些
只有一步sudo apt-get install terminator

私钥放置的问题

引用自:https://blog.csdn.net/qq_37449342/article/details/94726146
因为要用Putty远程登陆,所以需要将私钥放入你的虚拟机,我放在/root目录下,其他目录都提示too open
但是发起登陆请求时可能会出现以下问题

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0777 for '/root/.ssh/id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/root/.ssh/id_rsa": bad permissions
Permission denied (publickey).

解决方法只有一步chmod -R 700 /root

Putty远程登陆

ssh -i /root/id_dsa -X root@x.x.x.x 

注意你的id_dsa放的位置,后面的x.x.x.x是ip

内网的登陆

登陆远端主机后如果还需登陆VLAN里的其他主机,方法也差不多

ssh -i /root/id_dsa root@x.x.x.x

同样x.x.x.x是内网ip地址

error:[Errno 98] Address already in use

引用自:https://blog.csdn.net/SSSuperFang/article/details/80039524?depth_1-utm_source=distribute.pc_relevant.nonetask&utm_source=distribute.pc_relevant.none-task
如果碰到了这个错误,可能是在远端程序运行时意外掉线或者没有Ctrl+C退出。
解决方法是:
1、lsof -i:(port)port是端口号,你的代码里应该有提到
2、sudo kill PID杀掉进程,PID在上一行命令输完出现的界面能看到

Matplotlib中的问题

引用自:https://blog.csdn.net/zhangpeterx/article/details/83627705

1、_tkinter.TclError: no display name and no $disPLAY environment variable

解决方法:https://blog.csdn.net/zhangpeterx/article/details/83627705
出现此问题可能是因为远端Linux没有GUI?或者命令行不能画图?
Anyway
解决方法
头部引入

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt

== 顺序不能乱!!!!==
然后plt.savefig('/.../result.png')’…'是保存的路径,文件名可以随便取,我去的result.png

Networkx中碰到的问题

G = nx.Graph()
G = G.to_directed()

具体的图根据你自己的情况,这不是重点
如果你要给图中的边赋权值,或者就是要给边的一个属性赋值,我最开始是这样做的,== 以下代码为错误示范!!!!! ==

                for sourcee in range(0, 20): #此段为错误示范
                    for destinationn in range(0, 20):
                        if sourcee != destinationn and nx.has_path(G, g.L_IP[sourcee], g.L_IP[destinationn]):
                            G.add_edge(g.L_IP[sourcee], g.L_IP[destinationn], {'weight': 1.0})
                            G.add_edge(g.L_IP[destinationn], g.L_IP[sourcee], {'weight': 1.0})
                        elif sourcee == destinationn and nx.has_path(G, g.L_IP[sourcee], g.L_IP[destinationn]):
                            G.add_edge(g.L_IP[sourcee], g.L_IP[destinationn], {'weight': 0.0})
                            pass

本意是把除自环外的每条边的权值赋为1.0,自环的权值设为0.0,经过这一段代码成功把自己之前的图连成了全连通图……这段代码风格怎么说呢……什么叫C语言,zhei他妈就叫C语言,毕竟最早学的是C语言,用Python写C类型的代码还需要编成量来配合
正确方法如下

                for edge in G.edges():
                    G.edges[edge]['weight'] = 1.0
                for source in range(0, 20):
                    for destination in range(0, 20):
                        if source == destination:
                            G.add_edges_from([(g.L_IP[source], g.L_IP[destination], {'weight': 0.0})])

把除自环外的每条边的权值都赋为1.0就用了两行……

其他

这语句挺好用的input('Press Enter to continue')能让程序停下来,看看之前输出的内容,如果没有千里眼,这个还是蛮好用的,而且有种打游戏的快感哈哈哈

LiN-海韬 发布了2 篇原创文章 · 获赞 0 · 访问量 157 私信 关注

vertx的一些问题

vertx的一些问题

最近想选高效,简洁,扩充性强的web框做为移动平台后台,在对一系列框架对比后,选择了vertx。但经过一段使用后,发现vertx的一些问题。

1.vertx使用共享资源产生的重复代码

在vertx中,verticle是最基本的结构,简单的说类似j2ee servlet,但是verticle更加灵活,不仅可以是服务,也可是客户端,verticle之间通过eventbus通讯,实际上更类似akka的actor,vertx实现了类似nodejs express风格的web框架,但是java是多线程的,通常java的面向的目标环境更复杂。这样产生了一系列问题。
如jdbc连接池,在创建的时候必须在 verticle的start 中引入类似的语句

JDBCClient client = JDBCClient.createShared(vertx, new JsonObject().clear()
                .put("provider_class", "io.vertx.ext.jdbc.spi.impl.HikariCPDataSourceProvider")
                .put("jdbcUrl", "jdbc:postgresql://127.0.0.1:5432/mydb")
                .put("username", "postgres")
                .put("password","password")
                .put("driverClassName", "org.postgresql.Driver")
                .put("maximumPoolSize", 30),"mypool");

如果有另外一个verticle 需要使用连接池 mypool,也必须在start方法中加入这样一段。verticle 部署的是异步的多线程环境,这个createShared方法必须是线程安全的。如果有很多程序需要使用这个连接池 mypool,就会产生大量的冗余代码,这段代码必须是线程安全的。一个可行的方案是创建一个configuration verticle,这个verticle初始化所有的共享资源。然后通过这个verticle的静态方法访问系统的所有的共享资源。这样会减少大量的冗余代码,作为单例类,也不必是线程安全的。

需要注意是 当使用 vertx.deployVerticle 部署verticle (vertx是可以理解为一个verticle的环境),不能保证verticle的运行顺序,部署是异步的。为了保证configuration verticle的在其他verticle之前运行,必须使部署过程同步。同步方法并不复杂,可以用future实现。

try {
    log.info("deploy " + verticleID);
    CompletableFuture<Integer> future = new CompletableFuture<Integer>();
    vertx.deployVerticle(verticleID, deploymentOptions, res -> {
    if (res.succeeded()) {
        log.info("Deployment id is: " + res.result());
        future.complete(1);
    } else {
        log.error("Deployment failed!");
        future.complete(0);
    }});
    int result = future.get();
} catch (Throwable t) {
    log.error("error", t);
}

2.异步jdbc

异步jdbc确实能够提高效率,vertx提供了基于sql 语句的异步api,下面是从vertx jdbc example 摘下来的一个例子。

// create a test table
      execute(conn.result(), "create table test(id int primary key, name varchar(255))", create -> {
        // start a transaction
        startTx(conn.result(), beginTrans -> {
          // insert some test data
          execute(conn.result(), "insert into test values(1, ''Hello'')", insert -> {
            // commit data
            endTx(conn.result(), commitTrans -> {
              // query some data
              query(conn.result(), "select count(*) from test", rs -> {
                for (JsonArray line : rs.getResults()) {
                  System.out.println(line.encode());
                }

                // and close the connection
                conn.result().close(done -> {
                  if (done.failed()) {
                    throw new RuntimeException(done.cause());
                  }
                });
              });
            });
          });
        });
      });
    });
  }

这是一个非常简单的事务,都需要写成这样,无法想象一个复杂事务的处理程序会变成什么样子。其实jdbc driver api依然是同步的,不过vertx提供了一个异步封装。语句级别异步api过细,如果程序员能够自己控制异步的粒度,将会改善这种情况。我的方案是提供jdbc同步api,然后程序员可以异步封装一个过程。这在vertx很容易实现。

executor.executeBlocking((Future<T> f) -> {
      try {
          jdbc_routine();
        }
        f.complete();
      } catch (SQLException e) {
        f.fail(e);
      }
    }, handler);

小结 vertx的体系结构无疑是非常先进的,多线程异步结构,内置metrics,支持cluster,支持高可用度,这些都不是nodejs轻易能够提供的。 但是目前使用起来确实有诸多不变,需要一点hack。

我们今天的关于关于hover的一些问题有关hover的短语的分享已经告一段落,感谢您的关注,如果您想了解更多关于c# – 关于HL7监听器的一些问题、python使用logger的一些问题、Python的一些工具包和Ubuntu使用中遇到的一些问题、vertx的一些问题的相关信息,请在本站查询。

本文标签: