mirror of
https://github.com/whyour/qinglong.git
synced 2025-07-27 14:46:06 +08:00
增加timeout默认值,修改session管理逻辑
This commit is contained in:
parent
a36926a5bd
commit
0ae6fd68a4
|
@ -121,6 +121,16 @@ export default class CookieService {
|
|||
});
|
||||
}
|
||||
|
||||
private async formatCookies(cookies: Cookie[]) {
|
||||
const result = [];
|
||||
for (let i = 0; i < cookies.length; i++) {
|
||||
const cookie = cookies[i];
|
||||
const { status, nickname } = await this.getJdInfo(cookie.value);
|
||||
result.push({ ...cookie, status, nickname });
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public async create(payload: string[]): Promise<Cookie[]> {
|
||||
const cookies = await this.cookies('');
|
||||
let position = initCookiePosition;
|
||||
|
@ -135,7 +145,7 @@ export default class CookieService {
|
|||
});
|
||||
const docs = await this.insert(tabs);
|
||||
await this.set_cookies();
|
||||
return docs;
|
||||
return await this.formatCookies(docs);
|
||||
}
|
||||
|
||||
public async insert(payload: Cookie[]): Promise<Cookie[]> {
|
||||
|
@ -156,10 +166,11 @@ export default class CookieService {
|
|||
const tab = new Cookie({ ...doc, ...other });
|
||||
const newDoc = await this.updateDb(tab);
|
||||
await this.set_cookies();
|
||||
return newDoc;
|
||||
const [newCookie] = await this.formatCookies([newDoc]);
|
||||
return newCookie;
|
||||
}
|
||||
|
||||
public async updateDb(payload: Cookie): Promise<Cookie> {
|
||||
private async updateDb(payload: Cookie): Promise<Cookie> {
|
||||
return new Promise((resolve) => {
|
||||
this.cronDb.update(
|
||||
{ _id: payload._id },
|
||||
|
@ -228,6 +239,11 @@ export default class CookieService {
|
|||
],
|
||||
};
|
||||
}
|
||||
const newDocs = await this.find(query, sort);
|
||||
return await this.formatCookies(newDocs);
|
||||
}
|
||||
|
||||
private async find(query: any, sort: any): Promise<Cookie[]> {
|
||||
return new Promise((resolve) => {
|
||||
this.cronDb
|
||||
.find(query)
|
||||
|
|
|
@ -56,6 +56,8 @@ import_config() {
|
|||
let user_sum+=1
|
||||
eval Cookie${user_sum}="\"$line\""
|
||||
done
|
||||
|
||||
command_timeout_time=${CommandTimeoutTime:-"1h"}
|
||||
}
|
||||
|
||||
## 创建目录,$1:目录的绝对路径
|
||||
|
|
|
@ -116,7 +116,7 @@ run_normal() {
|
|||
log_dir="$dir_log/${p1%%.*}"
|
||||
log_path="$log_dir/$log_time.log"
|
||||
make_dir "$log_dir"
|
||||
timeout $CommandTimeoutTime $which_program $p1 2>&1 | tee $log_path
|
||||
timeout $command_timeout_time $which_program $p1 2>&1 | tee $log_path
|
||||
}
|
||||
|
||||
## 并发执行,因为是并发,所以日志只能直接记录在日志文件中(日志文件以Cookie编号结尾),前台执行并发跑时不会输出日志
|
||||
|
@ -132,7 +132,7 @@ run_concurrent() {
|
|||
for ((user_num = 1; user_num <= $user_sum; user_num++)); do
|
||||
combine_one $user_num
|
||||
log_path="$log_dir/${log_time}_${user_num}.log"
|
||||
timeout $CommandTimeoutTime $which_program $p1 &>$log_path &
|
||||
timeout $command_timeout_time $which_program $p1 &>$log_path &
|
||||
done
|
||||
}
|
||||
|
||||
|
@ -142,7 +142,7 @@ run_else() {
|
|||
local log_dir="$dir_log/$1"
|
||||
local log_path="$log_dir/$log_time.log"
|
||||
make_dir "$log_dir"
|
||||
timeout $CommandTimeoutTime "$@" 2>&1 | tee $log_path
|
||||
timeout $command_timeout_time "$@" 2>&1 | tee $log_path
|
||||
}
|
||||
|
||||
## 命令检测
|
||||
|
|
|
@ -117,7 +117,7 @@ del_cron() {
|
|||
rm -f "$dir_scripts/${cron}"
|
||||
detail="${detail}\n${result}"
|
||||
done
|
||||
notify "删除失效任务通知" "$detail2"
|
||||
notify "删除失效任务通知" "$detail"
|
||||
}
|
||||
|
||||
## 自动增加定时任务,需要:1.AutoAddCron 设置为 true;2.正常更新js脚本,没有报错;3.存在新任务;4.crontab.list存在并且不为空
|
||||
|
|
|
@ -23,7 +23,7 @@ body {
|
|||
}
|
||||
}
|
||||
|
||||
.cookie-wrapper {
|
||||
.session-wrapper {
|
||||
th {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
|
|
@ -105,17 +105,17 @@ const Config = () => {
|
|||
return <span style={{ cursor: 'text' }}>{index + 1} </span>;
|
||||
},
|
||||
},
|
||||
{
|
||||
title: '用户名',
|
||||
dataIndex: 'pin',
|
||||
key: 'pin',
|
||||
align: 'center' as const,
|
||||
render: (text: string, record: any) => {
|
||||
const match = record.value.match(/pt_pin=([^; ]+)(?=;?)/);
|
||||
const val = (match && match[1]) || '未匹配用户名';
|
||||
return <span style={{ cursor: 'text' }}>{decodeUrl(val)}</span>;
|
||||
},
|
||||
},
|
||||
// {
|
||||
// title: '用户名',
|
||||
// dataIndex: 'pin',
|
||||
// key: 'pin',
|
||||
// align: 'center' as const,
|
||||
// render: (text: string, record: any) => {
|
||||
// const match = record.value.match(/pt_pin=([^; ]+)(?=;?)/);
|
||||
// const val = (match && match[1]) || '未匹配用户名';
|
||||
// return <span style={{ cursor: 'text' }}>{decodeUrl(val)}</span>;
|
||||
// },
|
||||
// },
|
||||
{
|
||||
title: '昵称',
|
||||
dataIndex: 'nickname',
|
||||
|
@ -231,11 +231,11 @@ const Config = () => {
|
|||
}
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
if (value && loading) {
|
||||
asyncUpdateStatus();
|
||||
}
|
||||
}, [value]);
|
||||
// useEffect(() => {
|
||||
// if (value && loading) {
|
||||
// asyncUpdateStatus();
|
||||
// }
|
||||
// }, [value]);
|
||||
|
||||
const asyncUpdateStatus = async () => {
|
||||
for (let i = 0; i < value.length; i++) {
|
||||
|
@ -370,10 +370,10 @@ const Config = () => {
|
|||
};
|
||||
|
||||
const handleCookies = (cookies: any[]) => {
|
||||
const result = [...value];
|
||||
for (let i = 0; i < cookies.length; i++) {
|
||||
const cookie = cookies[i];
|
||||
const index = value.findIndex((x) => x._id === cookie._id);
|
||||
const result = [...value];
|
||||
if (index === -1) {
|
||||
result.push(cookie);
|
||||
} else {
|
||||
|
@ -381,9 +381,8 @@ const Config = () => {
|
|||
...cookie,
|
||||
});
|
||||
}
|
||||
setValue(result);
|
||||
refreshStatus(cookie, index);
|
||||
}
|
||||
setValue(result);
|
||||
};
|
||||
|
||||
const components = {
|
||||
|
@ -432,8 +431,8 @@ const Config = () => {
|
|||
|
||||
return (
|
||||
<PageContainer
|
||||
className="cookie-wrapper"
|
||||
title="Cookie管理"
|
||||
className="session-wrapper"
|
||||
title="Session管理"
|
||||
extra={[
|
||||
<Button key="2" type="primary" onClick={() => addCookie()}>
|
||||
添加Cookie
|
||||
|
|
|
@ -417,6 +417,7 @@ const Crontab = () => {
|
|||
notification.success({
|
||||
message: '批量删除成功',
|
||||
});
|
||||
setSelectedRowIds([]);
|
||||
getCrons();
|
||||
} else {
|
||||
notification.error({
|
||||
|
|
Loading…
Reference in New Issue
Block a user