小编sam*_*d0n的帖子

在单线程Python应用程序中关闭socketserver serve_forever()

我知道socketserver有一个方法shutdown()导致服务器关闭但这只适用于多线程应用程序,因为需要从运行serve_forever()的线程以外的线程调用shutdown.

我的应用程序一次只处理一个请求所以我不使用单独的线程来处理请求,我无法调用shutdown(),因为它会导致死锁(它不在文档中,但它直接在socketserver的源代码中声明).

我会在这里粘贴我的代码的简化版本以便更好地理解:

import socketserver

class TCPServerV4(socketserver.TCPServer):
  address_family = socket.AF_INET
  allow_reuse_address = True

class TCPHandler(socketserver.BaseRequestHandler):
  def handle(self):
    try:
       data = self.request.recv(4096)
    except KeyboardInterrupt:
       server.shutdown()

server = TCPServerV4((host, port), TCPHandler)
server.server_forever()
Run Code Online (Sandbox Code Playgroud)

我知道这段代码不起作用.我只想向您展示我想要完成的事情 - 当用户按下Ctrl-C时关闭服务器并在等待传入数据时退出应用程序.

python sockets socketserver

18
推荐指数
4
解决办法
3万
查看次数

如何在 JSDoc 中注释整个文件?

我正在尝试评论描述整体功能的整个文件。我把这样的东西放在每个文件的顶部

/**
 * @file File with helper functions that facilitate reading config JSON files.
 */
Run Code Online (Sandbox Code Playgroud)

但是当我生成文档时,我最终在每个文件之前都有一个奇怪的索引标题。它看起来像这样:

我没有对默认 JSDoc 配置进行任何更改。难道我做错了什么?指数标题是什么?我可以摆脱它或将其更改为有意义的东西吗?

javascript jsdoc jsdoc3

9
推荐指数
0
解决办法
607
查看次数

如何使用 next.js 和 next-i18next 本地化路由?

更改语言时需要更改路线名称。例如,我有一条路线,/en/career但是当我更改为捷克语时,我需要一条路线/cs/kariera。基本上我需要本地化 URL。现在,当我打开/en/career并将语言更改为 cs 时,我得到/cs/career. 这个页面根本不应该存在,当我在服务器上呈现页面时,我正确地得到了 404。我可以用 next-i18next 包做这样的事情吗?如果是这样,如何?

我发现这个包https://github.com/vonschau/next-routes-with-locale可能正是我需要的,但它显然不再维护并且不能在 next.js 8 下工作。

i18next next.js

8
推荐指数
2
解决办法
4867
查看次数

在 Firefox 中,window.onload 在 jQuery document.ready 之前触发

我创建了一个显示问题的 Codepen:https ://codepen.io/samuelg0rd0n/pen/ExVGQEV

在 Chrome 中,它在窗口 onload 事件之前正确触发 DOMContentLoaded 事件和 jQuery 文档就绪事件。然而,在 Firefox 中,顺序是:

DOMContentLoaded
window.onload
$(window).on('load', function() { ... });
$(document).ready();
$(function() { ... });
Run Code Online (Sandbox Code Playgroud)

window.onload 和 jQuery 窗口 onLoad 都会在 jQuery 文档就绪事件之前触发。我很确定这一定是 jQuery 或 Firefox 中的某种错误。谁可以给我解释一下这个?谢谢。

Chrome版本:81.0.4044.138

火狐版本:75.0

在 macOS 和 Linux 上都尝试过,结果相同。

firefox jquery document-ready domcontentloaded jquery-events

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

为什么 object-fit 不适用于 max-height 容器?

我正在尝试将视频放入一个容器中,该容器具有 100%width和自动height尊重纵横比但max-height设置。我希望视频填满整个容器,即使两侧被裁剪并且水平和垂直居中

我正在使用fit-object财产,但显然它不适用于max-height.

我会用一张图片来简化它。结果应该是一样的。

HTML

<div>
    <img src="...">
</div>
Run Code Online (Sandbox Code Playgroud)

CSS

div {
    width: 100%;
    overflow: hidden;
}
img {
    object-fit: cover;
    width: 100%;
    height: 100%;
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我添加到divstyle height: 100px,它会起作用。如果我写max-height: 100px,它不会。这是预期的行为吗?如果是这样,我该怎么做才能让它发挥作用?

这是 jsFiddle:http : //jsfiddle.net/1r4mLvLq/

css height

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

Safari和Chrome中的视频呈现比Firefox更亮一些

我试图在较大的静态PNG背景上放置视频的一小部分,并且视频的边缘应该无缝地融合到背景中,即.您应该无法识别视频结束的位置以及后台静态图像的开始.

但是,我发现每个浏览器都会以不同的方式呈现视频颜色.在Chrome中,它取决于您是否添加任何CSS过滤器(-webkit-filter)属性

filter: saturate(100%)
Run Code Online (Sandbox Code Playgroud)

(根本不应该改变视频).我创建了这个JSFiddle来演示问题https://jsfiddle.net/bj4hshwz/1/.没有它,它会使视频略微亮一些.使用filter属性,视频更暗/更饱和(在我的情况下匹配背景).Firefox正确呈现视频并且与背景匹配,在Safari中,无论您是否添加过滤器,它总是更亮.

有没有办法让Safari中的视频也正确?

html css safari video google-chrome

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

如何将FontAwesome 5 Pro与React集成?

有人可以建议我如何将FontAwesome 5 Pro与React 集成吗?

我知道有@ fortawesome / react-fontawesome软件包,例如@ fortawesome / fontawesome-free-regular,但是有没有办法包含专业版的图标?

当我登录FontAwesome网站时,可以下载pro-version JS,但是我猜这在React中没有用。

font-awesome reactjs font-awesome-5

4
推荐指数
2
解决办法
4997
查看次数

在 Oracle SQL SELECT 中设置连接列的宽度

我正在尝试在 Oracle 中设置连接列的宽度,但我不确定如何完成此操作。

我有这样的东西(简化):

SELECT t.first_name || ' ' || t.family_name "Trainer name"
FROM trainer t
Run Code Online (Sandbox Code Playgroud)

输出如下所示:

Trainer name                       
------------------------------------
Bill Gates                        
Steve Jobs                           
Isaac Asimov
Run Code Online (Sandbox Code Playgroud)

我试图将列宽限制为 18 个字符。我试图使用列

COLUMN t.first_name || ' ' || t.family_name FORMAT A18
Run Code Online (Sandbox Code Playgroud)

但这是行不通的。文档说:“如果在 COLUMN 命令中使用表达式,则必须完全按照 SELECT 命令中的显示输入 expr”。我究竟做错了什么?

sql oracle width

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