mirror of
https://github.com/labring/FastGPT.git
synced 2025-07-28 00:56:26 +00:00
feat: QPS Limit middleware (#2956)
* feat: QPS Limit middleware * chore: use request-ip to get client ip * feat: frequencyLimit schema
This commit is contained in:
27
packages/service/common/system/frequencyLimit/schema.ts
Normal file
27
packages/service/common/system/frequencyLimit/schema.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
import { getMongoModel, Schema } from '../../mongo';
|
||||
import type { FrequencyLimitSchemaType } from './type';
|
||||
|
||||
const FrequencyLimitSchema = new Schema({
|
||||
eventId: {
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
amount: {
|
||||
type: Number,
|
||||
default: 0
|
||||
},
|
||||
expiredTime: {
|
||||
type: Date,
|
||||
required: true
|
||||
}
|
||||
});
|
||||
|
||||
try {
|
||||
FrequencyLimitSchema.index({ eventId: 1 }, { unique: true });
|
||||
FrequencyLimitSchema.index({ expiredTime: 1 }, { expireAfterSeconds: 0 });
|
||||
} catch (error) {}
|
||||
|
||||
export const MongoFrequencyLimit = getMongoModel<FrequencyLimitSchemaType>(
|
||||
'frequency_limit',
|
||||
FrequencyLimitSchema
|
||||
);
|
Reference in New Issue
Block a user