增加一个手动执行schedule的脚本

This commit is contained in:
CounterFire2023 2023-07-24 13:16:42 +08:00
parent 4f3dfeb43d
commit 21ab84e18c
5 changed files with 20 additions and 8 deletions

View File

@ -9,6 +9,6 @@
"id": 42161,
"key": "0x0d6b3b1402f72b204f93e1438fbad4713a838b21c13c16f50ff54c32a8917273",
"wallet": "0x3Cd052Cc25358DB844bcDDfFa514080d41a4c2cA",
"mail": "ztgame@gmail.com"
"mail": "ztgame@gmail.com,yincan.kg@gmail.com"
}
]

View File

@ -210,7 +210,7 @@ export const AllChains = [
{
name: 'Arbitrum One',
type: 'Mainnet',
rpc: 'https://arb-mainnet.g.alchemy.com/v2/tFPlLg-MT8uGkM5wKHyoBqEHWJJ0o3Nt',
rpc: 'https://arb-mainnet.g.alchemy.com/v2/tFPlLg-MT8uGkM5wKHyoBqEHWJJ0o3Nt|https://rpc.arb1.arbitrum.gateway.fm',
id: 42161,
network: 'ARBITRUM',
symbol: 'ETH',

12
src/manual.ts Normal file
View File

@ -0,0 +1,12 @@
import { assert } from 'console'
import * as dotenv from 'dotenv'
import { TaskSvr } from 'service/task.service'
const envFile = process.env.NODE_ENV && process.env.NODE_ENV === 'production' ? `.env.production` : '.env.development'
dotenv.config({ path: envFile })
require('common/Extend')
;(async () => {
let scheduleId = process.env.npm_config_id
assert(scheduleId, 'scheduleId is required')
await new TaskSvr().parseOneSchedule(scheduleId)
console.log(`begin schedule:: scheduleId: ${scheduleId}`)
})()

View File

@ -24,17 +24,17 @@ export class ExecQueue {
this.blockChain = new BlockChain()
}
public async addTaskToQueue(subTask: DocumentType<RequestTaskClass>) {
if (EXCLUDE_STATUS.indexOf(subTask.status) >= 0) {
public async addTaskToQueue(subTask: DocumentType<RequestTaskClass>, force = false) {
if (!force && EXCLUDE_STATUS.indexOf(subTask.status) >= 0) {
return
}
if (subTask.maxTryCount && subTask.execCount > subTask.maxTryCount) {
if (!force && subTask.maxTryCount && subTask.execCount > subTask.maxTryCount) {
subTask.status = ReqTaskStatus.ERROR
await subTask.save()
await ChainTask.checkStatus(subTask.chainTaskId)
return
}
if (subTask.status === ReqTaskStatus.WAIT_EXEC_CONFIRM) {
if (!force && subTask.status === ReqTaskStatus.WAIT_EXEC_CONFIRM) {
new ChainCache().getConfirmQueue(subTask.chain).addTaskToQueue(subTask)
return
}

View File

@ -22,7 +22,7 @@ export class TaskSvr {
}
}
public async parseOneSchedule(scheduleId: string) {
public async parseOneSchedule(scheduleId: string, force = false) {
let record = await RequestTask.findOne({ scheduleId })
if (!record) {
return
@ -32,7 +32,7 @@ export class TaskSvr {
return
}
await record.save()
new ExecQueue().addTaskToQueue(record)
new ExecQueue().addTaskToQueue(record, force)
}
public async sendResultNotify(task: DocumentType<ChainTaskClass>, desc: string) {