修复 lewan 虚拟号配额被占满:过期绑定自动回收、退号失败不再追加取号、取号占满增加冷却
This commit is contained in:
@@ -13,6 +13,10 @@ import {
|
||||
notifyCloudtentaclesAssetLow,
|
||||
notifyCloudtentaclesAuthExpired,
|
||||
} from '../notification/domain-notifications.js'
|
||||
import {
|
||||
recycleCloudtentaclesStaleNumbers,
|
||||
retryCloudtentaclesPendingReturns,
|
||||
} from './cloudtentacles-number-recycle-service.js'
|
||||
|
||||
type CloudtentaclesHealthAccountResult = {
|
||||
sourceKey: string
|
||||
@@ -31,9 +35,13 @@ type CloudtentaclesHealthAccountResult = {
|
||||
export async function runCloudtentaclesHealthJob(job: JsonObject) {
|
||||
const accounts = resolveCloudtentaclesHealthAccounts(job)
|
||||
const cooldownSeconds = Number(job.cooldownSeconds || 1800)
|
||||
const results = await Promise.all(
|
||||
accounts.map((account) => runCloudtentaclesHealthAccount(account, cooldownSeconds)),
|
||||
)
|
||||
const [results, recycleResult, returnRetryResult] = await Promise.all([
|
||||
Promise.all(
|
||||
accounts.map((account) => runCloudtentaclesHealthAccount(account, cooldownSeconds)),
|
||||
),
|
||||
recycleCloudtentaclesStaleNumbers(),
|
||||
retryCloudtentaclesPendingReturns(),
|
||||
])
|
||||
const checkedResults = results.filter((item) => !item.skipped)
|
||||
const failedResults = checkedResults.filter((item) => item.ok === false)
|
||||
const lowAssetResults = checkedResults.filter((item) => item.status === 'asset_low')
|
||||
@@ -60,6 +68,8 @@ export async function runCloudtentaclesHealthJob(job: JsonObject) {
|
||||
? Math.max(...checkedResults.map((item) => Number(item.threshold || 0)))
|
||||
: normalizeNonNegativeInteger(job.config?.assetThreshold, 500),
|
||||
accounts: results,
|
||||
numberRecycle: recycleResult,
|
||||
pendingReturnRetry: returnRetryResult,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user