pcm-hpc/main.go

106 lines
2.7 KiB
Go

package main
import (
"fmt"
"github.com/robfig/cron"
taskcron "gitlink.org.cn/JointCloud/pcm-hpc/cron"
"gitlink.org.cn/JointCloud/pcm-hpc/paratera"
"time"
)
func main() {
c := cron.New()
// pull task list from coordinator
c.AddFunc("*/5 * * * * ?", func() {
taskcron.PullTaskInfo()
})
// 启动定时任务
c.Start()
// 阻塞主线程,否则主线程退出后定时任务也会停止
select {}
//slurm test
/****
start := time.Now().UnixNano() / int64(time.Millisecond)
cli, _ := slurm.NewClient(slurm.ClientOptions{
RestUserName: "slurmrestd",
CmdUserName: "root",
Password: "",
Token: "",
URL: "",
AdaptMode: "rest",
ClientVersion: "v0.0.38",
})
jober, _ := cli.Job(slurm.JobOptions{})
jobProp := slurm.JobProperties{}
opt := slurm.JobOptions{
Script: "srun sleep 200",
Job: &jobProp,
Jobs: nil,
}
result := jober.SubmitJob(opt)
str := fmt.Sprintf("%v", result)
fmt.Println(str)
end := time.Now().UnixNano() / int64(time.Millisecond)
duration := end - start
fmt.Printf("方法调用时间为 %d 毫秒\n", duration)
****/
start := time.Now().UnixNano() / int64(time.Millisecond)
cli, _ := paratera.NewClient(paratera.ClientOptions{
Url: "https://cloud.paratera.com",
TokenType: "TOKEN",
ThirdParty: "NMPHONE",
Phone: "13278887558",
Password: "eb78bbb29cfb2b31a54751873c3dab5f",
})
job, _ := cli.Job(paratera.JobOptions{})
//sbs job submit
sbs := paratera.Sbs{
JobGroupName: "vasp",
JobName: "sbsjob",
SubmitProfile: paratera.SubmitProfile{
BootScript: "jobsubmit.sh",
WorkingDir: "prn:pcs:sftp:CSTC9:CSTC9:sc30314:file:/public4/home/sc56516/jobs/VNCView_20240203180350",
},
}
result := job.SubmitSbsJob(sbs)
//abs job submit
/*submitProfiles := make([]paratera.SubmitProfiles, 0)
addtionalParams := make([]paratera.AddtionalParams, 0)
addtionalParam := paratera.AddtionalParams{
Key: "input",
Value: "prn:pcs:sftp:CSTC9:CSTC9:pp214:file:/WORK/pp214/jobs/Flow_F0.sim",
}
addtionalParams = append(addtionalParams, addtionalParam)
submitProfile := paratera.SubmitProfiles{
Queue: "prn:pcs:hpc:CSTC9:CSTC9:pp214:queue:paratera",
SubmissionParameters: paratera.SubmissionParameters{
AddtionalParams: addtionalParams,
Cores: 24,
Nodes: 1,
},
}
submitProfiles = append(submitProfiles, submitProfile)
queueAbs := paratera.QueueAbs{
App: "starccm/12.02.010-R8",
JobName: "starccm",
SubmitProfiles: submitProfiles,
}
result := job.SubmitQueueAbsJob(queueAbs)*/
str := fmt.Sprintf("%v", result)
fmt.Println(str)
end := time.Now().UnixNano() / int64(time.Millisecond)
duration := end - start
fmt.Printf("方法调用时间为 %d 毫秒\n", duration)
}