Implement basic queue, where is it impossible to run two identical job
in parallel
This commit is contained in:
parent
8259aaa474
commit
af96f82831
4 changed files with 81 additions and 4 deletions
|
|
@ -41,7 +41,7 @@ func PsName() (ret map[string]string, err error) {
|
|||
return ret, err
|
||||
}
|
||||
|
||||
func Run(jobtype string, image string, cmd []string, mounts []mount.Mount) (string, error) {
|
||||
func Create(jobtype string, image string, cmd []string, mounts []mount.Mount) (string, error) {
|
||||
cli, err := newCli()
|
||||
if err != nil {
|
||||
return "", err
|
||||
|
|
@ -69,12 +69,30 @@ func Run(jobtype string, image string, cmd []string, mounts []mount.Mount) (stri
|
|||
return "", err
|
||||
}
|
||||
|
||||
err = cli.ContainerStart(context.Background(), ctnr.ID, types.ContainerStartOptions{})
|
||||
return ctnr.ID, nil
|
||||
}
|
||||
|
||||
func Start(id string) error {
|
||||
cli, err := newCli()
|
||||
if err != nil {
|
||||
return "", err
|
||||
return err
|
||||
}
|
||||
|
||||
return ctnr.ID, nil
|
||||
err = cli.ContainerStart(context.Background(), id, types.ContainerStartOptions{})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func Run(jobtype string, image string, cmd []string, mounts []mount.Mount) (string, error) {
|
||||
ctrid, err := Create(jobtype, image, cmd, mounts)
|
||||
if err != nil {
|
||||
return ctrid, err
|
||||
}
|
||||
|
||||
return ctrid, Start(ctrid)
|
||||
}
|
||||
|
||||
func Logs(id string) (io.ReadCloser, error) {
|
||||
|
|
|
|||
Reference in a new issue