egg定時任務

2021-09-24 06:31:24 字數 1570 閱讀 3926

**位址 github.com/moceptweb/e… 看之前確定至少了解了egg的文件了, 不然看下面是浪費時間哈

很多情況我們需要去定時(或者就一次)執行某些指令碼, 這個時候就可以利用egg的schedule功能了

// 通過 schedule 屬性來設定定時任務的執行間隔等配置

static get schedule() ;

} async subscribe()

複製**

啟動時候自定決定啟動哪些定時任務
在get schedule() 中配置immediate:配置了該引數為 true 時,這個定時任務會在應用啟動並 ready 後立刻執行一次這個定時任務

});

複製**

// helper.js 統一連線乙個sqlserver connection

const mssql = require('mssql')

let pool = await mssql.connect(config)

mssql.on('error', err => )

複製**

切忌不要在非同步中做同步操作, 不然執行順序很意外!!!

async updateuser(oauser) );

await promise.all(promiseall);

}複製**

如果需要一步步獲取全部資料(這裡是同步)後才要進行全部非同步其他操作, 那麼需要先將同步操作封裝成promise支援非同步操作

async readline(target) )

}if(last)

})})

return file;

}// 使用

const filedata = await

this.readline(target);

let promiseall = ;

filedata.foreach(portal => );

await

promise.all(promiseall);

複製**

const res = await conn.query('update t_user set mail = ? where user_id = ?', [oauser.email, user.user_id]);

複製**

async sqlbegintransaction

() else

if(res.affectedrows > 1) else

} catch (err)

}複製**

統一封裝各種資料的連線和error資訊

單元測試說明

謹記更環境用的配置是不一樣的

單元測試用的是 config.unittest.js

todo 分析原始碼

linux定時任務 at定時任務

at命令是一次性定時計畫任務,at的守護程序atd會以後臺模式執行,檢查作業佇列來執行作業。atd守護程序會檢查系統上的乙個特殊目錄來獲取at命令的提交的作業,預設情況下,atd守護程序每60秒檢查一次目錄,有作業時,會檢查作業執行時間,如果時間與當前時間匹配,則執行此作業。注意 at命令是一次性定...

egg定時和定點任務

egg提供了強大的定時任務系統。通過定時任務,可以系統修改服務的快取資料,以便處理需要定時更新的資料。一 定時任務 以定時更新cache資料為例 module.exports async task ctx 2 還可以設定單位如下 1ms 1毫秒 1s 1秒 1m 1分鐘 等。二 定點任務 以每週一的...

at定時任務

at的守護程序每60秒檢查一次作業佇列,有作業時檢查作業,時間恰好達到,則執行作業。前提 保證atd程序已經啟動,檢查atd程序是否啟動 ps ef grep atd。atd的命令格式 at 選項 時間 ctrl d 結束at命令的輸入。選項 m 任務完成後給使用者傳送郵件,沒有標準輸出。i atg...