小编Jen*_*ens的帖子

如何在android geofences中实现"un-dwell"?

我有一个问题了解Androids geofences.

实际问题:我使用googles geofence-api中的Enter+ Exit事件,但在许多设备上,信号是如此不准确,以至于它跳入和跳出栅栏(跳跃经常大于半径400m).

计划解决方案:所以我想用它Dwell来"平滑"这个.如果位置在栅栏内保持一分钟,则会发生停留.到现在为止还挺好.但是如何检测围栏的离开?当我使用时Exit,Exit由于那些信号跳跃,可能会发生几次.当我离开地理围栏超过一分钟时,我需要的是一种"不适应".

我想避免使用自定义逻辑重新实现整个Geofence,该逻辑在快速重复的地理位置上进行注册并过滤掉小的异常值.

问题:geofence-api中有什么东西可以实现"不适"吗?或者是否有最佳实践如何检查是否Exit真的退出?

java android android-geofence

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

使用 Ingress 对 Kubernetes 中的 websocketconnections 进行基于 url 的负载平衡

我想nginx.ingress.kubernetes.io/upstream-hash-by用于多个客户端的 websocket 连接,其中相关客户端(基于 URL)应该坚持到同一个服务器。

当副本数量发生变化时,Ingress-nginx 似乎会重新平衡流量(pod 出现故障并将被新的自动替换,或者数量随着运行时规模而增加)。

重新平衡的问题在于它不会终止现有连接。因此,已经存在的 websocket 连接(对于已经散列的 URL)留在 pod A 上,而到同一 URL 的新连接突然分配到新生成的 pod B。

这是我的入口定义:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: websocket-ingress
  annotations:
    kubernetes.io/ingress.class: "nginx"
    nginx.ingress.kubernetes.io/use-regex: "true"
    nginx.ingress.kubernetes.io/upstream-hash-by: "$1"
spec:
  rules:
  - http:
      paths:
      - path: /socket-service/?clients/(.*)/.*
        backend:
          serviceName: websocket-test
          servicePort: 80
Run Code Online (Sandbox Code Playgroud)

是否有一种配置可以通过关闭“重新平衡”或自动终止现有连接来以某种方式控制这种行为?

routing load-balancing websocket kubernetes nginx-ingress

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

HAProxy 从操作系统使用 DNS?

我在 hsproxy.cfg 中为后端服务器使用 dns 名称,例如

backend s0
    server server0 server0.x.y.local:8080

backend s1
    server server1 server1.x.y.local:8080
Run Code Online (Sandbox Code Playgroud)

启动后名称解析工作正常。但是一旦后端服务器的 ipadress 更改,对 haproxy 的请求需要很长时间(例如 25 秒),然后以 503 响应(原因:SC)。它不会更新或重新解析 dns 名称。但是curl那台机器上的一个工作正常,所以操作系统正确地更新了这些 dns 条目的 ip 地址。所以看起来 haproxy 在启动时缓存 IP 地址并且从不更改它们。

我在 kubernetes 集群中使用 haproxy 作为 pod(不确定这是否重要)。

从我在官方文档中读到的内容来看,libc 选项应该使用操作系统解析吗?我试过放置init-addr libc但它没有帮助,haproxy 在机器上仍然以长时间运行的 503 响应,dns 完美解析。

我还看到在使用resolver条目时可以进行一些微调,您可以在其中配置刷新时间等。如果没有 haproxy.cfg 中的硬编码名称服务器,而只使用操作系统中的名称服务器,这是否可行?

dns haproxy kubernetes

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

基本的auth / ip过滤器,仅用于Ingress NGINX中包含特殊字符的路径

我希望我的Ingress(NGINX)按源IP地址进行过滤,并在代理服务之前显示基本身份验证。尽管这很简单,但复杂的部分是,如果URL路径中包含特殊字符,我只希望它执行此操作。

可以说,在将它们代理到正确的服务之前,我想保护所有以“ +”开头的路径。另一方面,我仍然希望将不以“ +”开头的路径(没有基本身份验证)路由到同一服务。它还不应更改该服务将看到的URL。

例如:

/serviceA/what/ever -> http://192.168.0.2/what/ever
/serviceA/what/+ever -> BASIC_AUTH -> http://192.168.0.2/what/+ever
/serviceB/what/ever -> http://192.168.0.3/what/ever
/serviceB/+what/ever -> BASIC_AUTH -> http://192.168.0.3/+what/ever
Run Code Online (Sandbox Code Playgroud)

是否可以在Ingress或至少在NGINX配置中实现?URL路径的正则表达式在NGINX中也非常简单,但是是否可以在不复制所有路径条目的情况下也无需在前面添加第二个代理nginx呢?

理想的解决方案是在Ingress yml config中,但我对NGINX更为熟悉,因此这是我想在NGINX-Syntax中实现的示例:

Location ~ /+ {
    auth_basic ...;
    auth_basic_user_file ...;
    < route it somehow to the similar location as it would have no +, but don't cut out the + >
}
Location /serviceA {
    proxy_pass ...;
}
... more Locations ...
Run Code Online (Sandbox Code Playgroud)

或者在Ingress中,与路径条目类似。

nginx basic-authentication kubernetes kubernetes-ingress nginx-ingress

5
推荐指数
0
解决办法
171
查看次数

Gruntfile.js 中的智能感知

是否可以在 Gruntfile 中使用智能感知?

由于 'grunt' 不是全局变量而是 Gruntfile 中的参数,VSCode 将假定它只是一个未知的函数参数 'any'。

module.exports = function(grunt) {...}
Run Code Online (Sandbox Code Playgroud)

当我将类型添加到参数时,intellisense 工作得很好,但 grunt 不会,因为它是 JS 而不是 TS。

module.exports = function(grunt: IGrunt) {...}
Run Code Online (Sandbox Code Playgroud)

intellisense gruntjs typescript visual-studio-code

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

在不使用字符串的情况下获取javascript中另一个时区的时区偏移量

我想计算从“用户时间”到“ WET / WEST”的偏移量。

我让用户抵消了new Date().getTimezoneOffset()

但是,如何获取WET / WEST的偏移量,以便能够计算两者的组合偏移量?

例如,如果用户在中欧时间(CET / CEST),则在冬季,组合偏移量将为-60(CET)+ 0(WET)= -60。夏季为-120(CEST)+ 60(WEST)= -60。在这种情况下,它始终为-60,但用户也可以具有不带DST的时区。

如果不将其格式化为字符串并从该字符串中读出新的时区,是否可以做到这一点?

javascript timezone datetime date timezone-offset

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