V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  vvtf  ›  全部回复第 1 页 / 共 2 页
回复总数  30
1  2  
51 天前
回复了 vvtf 创建的主题 数据库 问个 SQL 查询问题.
改成这样就行了,
使用 row_number 有问题就是当发生疲劳了,
而后面紧跟着的几个状态都是解除疲劳的触发就会出现错误.
所以使用 last_value 解决.

```sql

WITH t0 as (
...
)
, t1 AS (
-- 这里的 run 和 rest 会去查询配置表
SELECT
client_id,
-- 运行时长: 60 秒
60 run,
-- 休息时长: 120 秒
120 rest,
device_time,
-- 运行状态: 0-停止,1-运行
runstate,
ROW_NUMBER() OVER (ORDER BY device_time) AS rn,
ROW_NUMBER() OVER (
PARTITION BY client_id, runstate
ORDER BY device_time) AS grp
FROM t0
order by device_time
)
,t2 AS (
SELECT
*,
MIN(device_time) OVER (
PARTITION BY client_id, runstate, rn - grp
order by device_time
) AS start_time ,
rn - grp gap
FROM
t1
)
,t3 AS (
SELECT
*,
-- 持续时长
TIMESTAMPDIFF(second, start_time, device_time) AS duration
FROM
t2
)

,t4 AS (
SELECT
*,
case
-- 触发疲劳时,设置 1
-- 解除疲劳设置 0
-- 其他设置 null
when runstate=1 and duration>=run then 1
when runstate=0 and duration>=rest then 0
else null
end fatigue
FROM
t3
)

select
*,
-- 使用前面最后非 null 的状态为疲劳状态
ifnull(last_value(fatigue) ignore nulls over(
partition by client_id
order by device_time
rows between unbounded preceding and current row
),0) fatigue_final
from t4
order by device_time


```
100 天前
回复了 Geekerstar 创建的主题 Java 奇怪的 Java .lang.StackOverflowError 错误
看了下原日志, json 解析的 bug 吧.
100 天前
回复了 Geekerstar 创建的主题 Java 奇怪的 Java .lang.StackOverflowError 错误
websocket 的好像.
应该是代码有问题.
可能某个异常被递归监听或者处理之类的.
而且 jsx 这种最外面是一个{}包括, 表示这是一整个代码段.
每个 condition 都用()包括也很容易区分整个边界.
不是前端, 我倒是觉得 jsx 的写法最好了(因为我觉得三元很易读)
1>2>3,
vue 那个完全看不懂,
<div></div>我认为这就已经完成结束了, 后面的任何操作都跟它无关,后面又跟了一个<div></div>我的直觉是会都会渲染.
除非外面再包装一个类似这种.
<v-condition>
<div v-if />
<div v-else-if />
<div v-else>
</v-condition>
@Bryant0814
#4 `doorRecordInfoVOList ` 不会有线程安全问题.
目前看下来只有 `getToken()`这里有问题才会出现你说的情况.
2023-09-19 17:16:09 +08:00
回复了 zshineee 创建的主题 程序员 请教一个 javax.validation 和 jakarta.validation 的问题
@zshineee
@sujin190
#5 的意思是在`B`依赖`A`时, `exclude javax.validation` 的包.
然后再`B`项目创建` javax.validation `相同类路径的注解, 然后使用`jakarta.validation `注解.
比如:
```java
package javax.validation.constraints;

@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
@Retention(RUNTIME)
@Repeatable(List.class)
@Documented
@Constraint(validatedBy = { })
// 这里用 jakarta 的注解
@jakarta.validation.constraints.NotNull
public @interface NotNull {
// ignore.
}
```
2023-09-19 16:18:55 +08:00
回复了 zshineee 创建的主题 程序员 请教一个 javax.validation 和 jakarta.validation 的问题
手动校验呗.
https://stackoverflow.com/questions/19190592/manually-call-spring-annotation-validation
基于上述方法可以+`AOP`自动实现.
2023-09-18 15:07:18 +08:00
回复了 kkadmin 创建的主题 程序员 EclipseIDE 有好用的 Git 插件吗,其他好用的插件推荐一下
@790002517zzy
我这里是可以的,
`ctrl+左键``Java`的方法, 有一个`open <xxx> in *.xml`.
2023-09-15 17:27:48 +08:00
回复了 kkadmin 创建的主题 程序员 EclipseIDE 有好用的 Git 插件吗,其他好用的插件推荐一下
自带的就行,
我只额外安装了 2 个插件:
`MyBatipse`: 方便从`Java 到 mybatis XML`互跳.
`YAML editor`: `yml 文件编辑`.

我用的是 Java 版本, 非 JEE 版本.
2023-09-15 16:13:16 +08:00
回复了 diy886 创建的主题 Android jar 包有个 log 方法如何过滤或者屏蔽
自己重写那个类, 然后编译好, 使用`jar -u`替换
```bash

jar -uvf xxx.jar com/xxx/aa/Log.class

```
2023-04-11 09:59:57 +08:00
回复了 biuaxia 创建的主题 Java Java 中什么情况下类会被重载?
看下 java-agent 吧,
是用 instrumentation 实现的.
这不就是 jsr269 的东西吗?
我们的定制化需求就是靠这个实现的.
你这个增加代码的需求就几行代码就搞定.
2022-10-21 17:33:15 +08:00
回复了 JinTianYi456 创建的主题 Java RedissonClient, 这种 lock 风格有隐患吗?
public final class RLockCloseable implements AutoCloseable {

private RLock lock;
private boolean locked;

public RLockCloseable(RLock lock) {
Objects.nonNull(lock);
this.lock = lock;
}

public static RLockCloseable of(RLock lock) {
return new RLockCloseable(lock);
}

public static void ifLocked(RLock lock, Consumer<Void> fn) {
try (RLockCloseable _lock = new RLockCloseable(lock)) {
if (_lock.tryLock()) {
fn.accept(null);
}
}
}

public boolean tryLock() {
// or use isHeldByCurrentThread
return locked = lock.tryLock();
}

public void close() {
if (locked) lock.unlock();
}

}


// usage
//1.
try (RLockCloseable lock = redisson.getLock("key")) {
if (lock.tryLock()) {
// TODO
}
}

//2.
RLockCloseable.ifLocked(redisson.getLock("key"), _t -> {
// TODO
});
2022-10-21 15:49:09 +08:00
回复了 cy18 创建的主题 硬件 求推荐高性价比大屏幕笔记本
要不看下 intel nux x15. 硬盘和内存自己装. i7, rtx3070, 2.5k, 7k.
2022-09-23 15:07:16 +08:00
回复了 8629 创建的主题 Java 请教下 Java 热替换代码的技术
1. 通过 Agent 拿到 Instrumentation
2. 通过 Instrumentation#redefineClasses 替换类即可.
2022-08-31 14:18:16 +08:00
回复了 dtgxx 创建的主题 问与答 flink 去重问题请教
if (value.toLowerCase().indexOf("a") > -1)
这个判断是我的测试代码,
你可以改成你的 json 方式判断.
2022-08-31 14:16:50 +08:00
回复了 dtgxx 创建的主题 问与答 flink 去重问题请教
2 种思路,
1 是使用滑动窗口, 窗口大小为 24h,
然后去重;

2 是记录一个上次 a 出现的时间, 如果大于 24h 就重新计算, 小于 24h 就跳过.

下面是方法 1 的代码:
ds
.windowAll(TumblingProcessingTimeWindows.of(Time.hours(24)))
.process(new ProcessAllWindowFunction<String, String, TimeWindow>() {
private static final long serialVersionUID = 1L;

@Override
public void process(ProcessAllWindowFunction<String, String,
TimeWindow>.Context ctx,
Iterable<String> values, Collector<String> out) throws Exception {
boolean repeat = false;
for (String value : values) {
if (value.toLowerCase().indexOf("a") > -1) {
if (repeat) {
continue;
}
repeat = true;
}
out.collect(value);
}

}
})
.print();
2022-08-27 20:55:30 +08:00
回复了 vvtf 创建的主题 程序员 请教一个 IP 代理访问问题
@defunct9
我试了 alias,
但是在 HTTP 服务获取到的 IP 地址始终是 31
1  2  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3802 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 26ms · UTC 00:09 · PVG 08:09 · LAX 17:09 · JFK 20:09
Developed with CodeLauncher
♥ Do have faith in what you're doing.