Skip to content

Commit

Permalink
feat(): command timeout
Browse files Browse the repository at this point in the history
  • Loading branch information
Izak88 authored and jkuri committed Sep 11, 2017
1 parent 8a1e51a commit 641d3fd
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 2 deletions.
4 changes: 3 additions & 1 deletion src/api/process-manager.ts
Expand Up @@ -206,7 +206,9 @@ export function startJob(proc: JobProcess): Promise<void> {
}
});

startBuildProcess(proc, 'abstruse', envVariables)
const jobTimeout = config.jobTimeout ? config.jobTimeout * 1000 : 3600000;
const idleTimeout = config.idleTimeout ? config.idleTimeout * 1000 : 3600000;
startBuildProcess(proc, 'abstruse', envVariables, jobTimeout, idleTimeout)
.subscribe(event => {
const msg: JobProcessEvent = {
build_id: proc.build_id,
Expand Down
8 changes: 7 additions & 1 deletion src/api/process.ts
Expand Up @@ -31,7 +31,9 @@ export interface ProcessOutput {
export function startBuildProcess(
proc: JobProcess,
image: string,
variables: string[]
variables: string[],
jobTimeout: number,
idleTimeout: number
): Observable<ProcessOutput> {
return new Observable(observer => {
const name = 'abstruse_' + proc.build_id + '_' + proc.job_id;
Expand Down Expand Up @@ -124,6 +126,10 @@ export function startBuildProcess(
.concat(...[saveCache])
.concat(...scriptCommands.map(cmd => executeInContainer(name, cmd)))
.concat(...deployCommands.map(cmd => executeInContainer(name, cmd)))
.timeoutWith(idleTimeout, Observable.throw(new Error('command timeout')))
.merge(Observable.timer(jobTimeout).timeInterval().mergeMap((): any => {
Observable.throw('job timeout');
}))
.subscribe((event: ProcessOutput) => {
observer.next(event);
}, err => {
Expand Down
2 changes: 2 additions & 0 deletions src/api/utils.ts
Expand Up @@ -24,6 +24,8 @@ const defaultConfig = {
port: 6500,
wsport: 6501,
concurrency: 10,
idleTimeout: 600,
jobTimeout: 3600,
ssl: false,
sslcert: null,
sslkey: null,
Expand Down

0 comments on commit 641d3fd

Please sign in to comment.