-
Notifications
You must be signed in to change notification settings - Fork 2
任务与结果的数据类型
MuYu edited this page Jan 30, 2020
·
2 revisions
数据在 redis 中均为 json string。
interface JudgeJob {
version: 1
solutionId: number
code: string
lang: string
// 指明 problem 的 meta 从哪里拉取
problem: {
type: 'redis'
key: string
}
}
interface Result {
version: 1
solutionId: number
result: ResultType
// 除非配置 否则取机器的 hostname
hostname: string
detail: {
point: string
result: ResultType
timeCost: number
memoryUsage: number
}[]
}
interface ProblemMeta {
// 编译与判题的镜像指定
langConfig: {
[lang in CodeLang]: LangConfig
}
testCase: TestCaseFromS3 | TestCaseFromFS
}
type CodeLang = 'C' | 'C++'
interface LangConfig {
image?: {
compiler?: ImageConfig
judger?: ImageConfig
}
limit: {
timeCost: number
memoryUsage: number
}
}
interface ImageConfig {
name: string
cmd?: string[]
entrypoint?: string[]
}
interface TestCaseFromS3 {
type: 's3'
list: {
// 没有就用文件名
name?: string,
key: string
// 最新版本 hash 不同应更新缓存
// 不指明时 用 s3 api 拉取
etag?: string
// 分数
score?: number
}[]
}
interface TestCaseFromFS {
type: 'file'
list: {
// 没有就用文件名
name?: string,
// 本地路径
key: string
// 分数
score?: number
}[]
}
enum ResultType {
AC = 'AC',
WA = 'WA',
RE = 'RE',
CE = 'CE',
}