mirror of
https://github.com/QuantumNous/new-api.git
synced 2026-09-12 07:00:42 +00:00
feat(task): replace built-in task adaptors with a sandboxed JS plugin system (#7076)
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
package system_setting
|
||||
|
||||
import "github.com/QuantumNous/new-api/common"
|
||||
|
||||
const (
|
||||
DefaultTaskArtifactInvalidRateLimitPerMinute = 60
|
||||
DefaultTaskArtifactGlobalConcurrency = 128
|
||||
DefaultTaskArtifactIPConcurrency = 64
|
||||
DefaultTaskArtifactObjectConcurrency = 16
|
||||
)
|
||||
|
||||
const (
|
||||
TaskArtifactInvalidRateLimitEnv = "TASK_ARTIFACT_INVALID_RATE_LIMIT_PER_MINUTE"
|
||||
TaskArtifactGlobalLimitEnv = "TASK_ARTIFACT_GLOBAL_CONCURRENCY"
|
||||
TaskArtifactIPLimitEnv = "TASK_ARTIFACT_IP_CONCURRENCY"
|
||||
TaskArtifactObjectLimitEnv = "TASK_ARTIFACT_OBJECT_CONCURRENCY"
|
||||
)
|
||||
|
||||
type TaskArtifactAccessLimits struct {
|
||||
InvalidRatePerMinute int
|
||||
GlobalConcurrency int
|
||||
IPConcurrency int
|
||||
ObjectConcurrency int
|
||||
}
|
||||
|
||||
func positiveTaskArtifactLimit(env string, defaultValue int) int {
|
||||
value := common.GetEnvOrDefault(env, defaultValue)
|
||||
if value <= 0 {
|
||||
common.SysError(env + " must be positive; using default")
|
||||
return defaultValue
|
||||
}
|
||||
return value
|
||||
}
|
||||
|
||||
// LoadTaskArtifactAccessLimits reads startup configuration. Invalid and
|
||||
// non-positive values safely fall back to the documented defaults.
|
||||
func LoadTaskArtifactAccessLimits() TaskArtifactAccessLimits {
|
||||
return TaskArtifactAccessLimits{
|
||||
InvalidRatePerMinute: positiveTaskArtifactLimit(
|
||||
TaskArtifactInvalidRateLimitEnv,
|
||||
DefaultTaskArtifactInvalidRateLimitPerMinute,
|
||||
),
|
||||
GlobalConcurrency: positiveTaskArtifactLimit(
|
||||
TaskArtifactGlobalLimitEnv,
|
||||
DefaultTaskArtifactGlobalConcurrency,
|
||||
),
|
||||
IPConcurrency: positiveTaskArtifactLimit(
|
||||
TaskArtifactIPLimitEnv,
|
||||
DefaultTaskArtifactIPConcurrency,
|
||||
),
|
||||
ObjectConcurrency: positiveTaskArtifactLimit(
|
||||
TaskArtifactObjectLimitEnv,
|
||||
DefaultTaskArtifactObjectConcurrency,
|
||||
),
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user