|
@@ -189,7 +189,7 @@ class executor extends EventEmitter {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- async downloadSheet(dir, template, append, watermark, showMarker) {
|
|
|
|
|
|
+ async downloadSheet(dir, template, append, failover, watermark, showMarker) {
|
|
let bucket = env.server.bucketPrefix + '-sheet'
|
|
let bucket = env.server.bucketPrefix + '-sheet'
|
|
let client = upyun(bucket, config.upyun.operator, config.upyun.password)
|
|
let client = upyun(bucket, config.upyun.operator, config.upyun.password)
|
|
if (env.server.upyunDomain && env.server.upyunDomain != '') {
|
|
if (env.server.upyunDomain && env.server.upyunDomain != '') {
|
|
@@ -218,11 +218,21 @@ class executor extends EventEmitter {
|
|
for (let i = 1; i <= student.sheetCount; i++) {
|
|
for (let i = 1; i <= student.sheetCount; i++) {
|
|
promises.push(this.downloadFile(append, config.imageUrl.sheet, template, student, dir, client, bucket, i, watermark, showMarker))
|
|
promises.push(this.downloadFile(append, config.imageUrl.sheet, template, student, dir, client, bucket, i, watermark, showMarker))
|
|
}
|
|
}
|
|
- //等待所有图片下载完毕
|
|
|
|
- await Promise.all(promises)
|
|
|
|
-
|
|
|
|
- count++
|
|
|
|
- this.emit('count', count)
|
|
|
|
|
|
+ try {
|
|
|
|
+ //等待所有图片下载完毕
|
|
|
|
+ await Promise.all(promises)
|
|
|
|
+ count++
|
|
|
|
+ this.emit('count', count)
|
|
|
|
+ } catch (err) {
|
|
|
|
+ //判断是否异常终止
|
|
|
|
+ if (failover) {
|
|
|
|
+ throw err
|
|
|
|
+ } else {
|
|
|
|
+ logger.error('download sheet error:' + err)
|
|
|
|
+ logger.error(err)
|
|
|
|
+ continue
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
this.emit('finish')
|
|
this.emit('finish')
|
|
@@ -233,7 +243,7 @@ class executor extends EventEmitter {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- async downloadPackage(dir, template, append) {
|
|
|
|
|
|
+ async downloadPackage(dir, template, append, failover) {
|
|
let bucket = env.server.bucketPrefix + '-package'
|
|
let bucket = env.server.bucketPrefix + '-package'
|
|
let client = upyun(bucket, config.upyun.operator, config.upyun.password)
|
|
let client = upyun(bucket, config.upyun.operator, config.upyun.password)
|
|
if (env.server.upyunDomain && env.server.upyunDomain != '') {
|
|
if (env.server.upyunDomain && env.server.upyunDomain != '') {
|
|
@@ -249,7 +259,18 @@ class executor extends EventEmitter {
|
|
let p = array[i]
|
|
let p = array[i]
|
|
p.examId = env.examId
|
|
p.examId = env.examId
|
|
for (let i = 1; i <= p.picCount; i++) {
|
|
for (let i = 1; i <= p.picCount; i++) {
|
|
- await this.downloadFile(append, config.imageUrl.package, template, p, dir, client, bucket, i)
|
|
|
|
|
|
+ try {
|
|
|
|
+ await this.downloadFile(append, config.imageUrl.package, template, p, dir, client, bucket, i)
|
|
|
|
+ } catch (err) {
|
|
|
|
+ //判断是否异常终止
|
|
|
|
+ if (failover) {
|
|
|
|
+ throw err
|
|
|
|
+ } else {
|
|
|
|
+ logger.error('download package error: ' + err)
|
|
|
|
+ logger.error(err)
|
|
|
|
+ continue
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
count++
|
|
count++
|
|
this.emit('count', count)
|
|
this.emit('count', count)
|