Global

Methods

(async) WDataScheduler(optopt) → {Object}

Description:
  • 基於檔案之數據變更驅動任務建構器

Source:
Example
import w from 'wsemi'
import WDataScheduler from './src/WDataScheduler.mjs'

//fdTagRemove
let fdTagRemove = './_tagRemove'
w.fsCleanFolder(fdTagRemove)

//fdTaskCpActualSrc
let fdTaskCpActualSrc = './_taskCpActualSrc'
w.fsCleanFolder(fdTaskCpActualSrc)

//fdTaskCpSrc
let fdTaskCpSrc = './_taskCpSrc'
w.fsCleanFolder(fdTaskCpSrc)

//funGetNew
let funGetNew = async() => {
    let items = [
        {
            'id': '114115',
            'hash': 'abc',
        },
    ]
    return items
}

//funGetCurrent
let funGetCurrent = async() => {
    let items = [
        {
            'id': '114115',
            'hash': 'abc',
        },
        {
            'id': '114116',
            'hash': 'def',
        },
    ]
    return items
}

//funRemove
let funRemove = async(v) => {
    //do somethings
}

//funAdd
let funAdd = async(v) => {
    //do somethings
}

//funModify
let funModify = async(v) => {
    //do somethings
}

let opt = {
    fdTagRemove,
    fdTaskCpActualSrc,
    fdTaskCpSrc,
    funGetNew,
    funGetCurrent,
    funRemove,
    funAdd,
    funModify,
}
let ev = await WDataScheduler(opt)
    .catch((err) => {
        console.log(err)
    })
ev.on('change', (msg) => {
    delete msg.type
    delete msg.timeRunStart
    delete msg.timeRunEnd
    delete msg.timeRunSpent
    console.log('change', msg)
})
// change { event: 'start', msg: 'running...' }
// change { event: 'proc-callfun-getNew', msg: 'start...' }
// change { event: 'proc-callfun-getNew', num: 2, msg: 'done' }
// change { event: 'proc-callfun-getCurrent', msg: 'start...' }
// change { event: 'proc-callfun-getCurrent', num: 1, msg: 'done' }
// change { event: 'proc-compare', msg: 'start...' }
// change {
//   event: 'proc-compare',
//   numRemove: 0,
//   numAdd: 1,
//   numModify: 0,
//   numSame: 1,
//   msg: 'done'
// }
// change { event: 'proc-add-callfun-add', id: '114116', msg: 'start...' }
// change { event: 'proc-add-callfun-add', id: '114116', msg: 'done' }
// change { event: 'end', msg: 'done' }
Parameters:
Name Type Attributes Default Description
opt Object <optional>
{}

輸入設定物件,預設{}

Properties
Name Type Attributes Default Description
keyId String <optional>
'keyId'

輸入各筆數據之主鍵字串,預設'keyId'

fdTagRemove String <optional>
'./_tagRemove'

輸入暫存標記為刪除數據資料夾字串,預設'./_tagRemove'

fdTaskCpActualSrc String <optional>
'./_taskCpActualSrc'

輸入儲存來源端之完整任務狀態資料夾字串,預設'./_taskCpActualSrc'

fdTaskCpSrc String <optional>
'./_taskCpSrc'

輸入儲存來源端之觸發任務狀態資料夾字串,預設'./_taskCpSrc'

fdLog String <optional>
'./_logs'

輸入儲存log資料夾字串,預設'./_logs'

funGetNew function <optional>
null

輸入取得最新數據之hash數據處理函數,回傳資料陣列,為必須,預設null

funGetCurrent function <optional>
null

輸入取得既有數據之hash數據處理函數,回傳資料陣列,為必須,預設null

funAdd function <optional>
null

輸入當有新資料時,需要連動處理之函數,預設null

funModify function <optional>
null

輸入當有資料需更新時,需要連動處理之函數,預設null

funRemove function <optional>
null

輸入當有資料需刪除時,需要連動處理之函數,預設null

funAfterStart function <optional>
null

輸入偵測程序剛開始啟動時,需要處理之函數,預設null

funBeforeEnd function <optional>
null

輸入偵測程序要結束前,需要處理之函數,預設null

timeToleranceRemove Number <optional>
0

輸入刪除任務之防抖時長,單位ms,預設0,代表不使用

eventNameProcCallfunGetNew String <optional>
'proc-callfun-getNew'

輸入觸發事件與紀錄log事件名稱字串,預設'proc-callfun-getNew'

eventNameProcCallfunGetCurrent String <optional>
'proc-callfun-getCurrent'

輸入觸發事件與紀錄log事件名稱字串,預設'proc-callfun-getCurrent'

eventNameProcAddCallfunAdd String <optional>
'proc-add-callfun-add'

輸入觸發事件與紀錄log事件名稱字串,預設'proc-add-callfun-add'

eventNameProcDiffCallfunModify String <optional>
'proc-diff-callfun-modify'

輸入觸發事件與紀錄log事件名稱字串,預設'proc-diff-callfun-modify'

eventNameProcRemoveCallfunRemove String <optional>
'proc-remove-callfun-remove'

輸入觸發事件與紀錄log事件名稱字串,預設'proc-remove-callfun-remove'

eventNameProcCallfunAfterStart String <optional>
'proc-callfun-afterStart'

輸入觸發事件與紀錄log事件名稱字串,預設'proc-callfun-afterStart'

eventNameProcCallfunBeforeEnd String <optional>
'proc-callfun-beforeEnd'

輸入觸發事件與紀錄log事件名稱字串,預設'proc-callfun-beforeEnd'

eventNameProcCoreDetect String <optional>
'proc-coreDetect'

輸入觸發事件與紀錄log事件名稱字串,預設'proc-coreDetect'

eventNameProcRetakeRemove String <optional>
'proc-retake-remove'

輸入觸發事件與紀錄log事件名稱字串,預設'proc-retake-remove'

eventNameProcCoreRetake String <optional>
'proc-coreRetake'

輸入觸發事件與紀錄log事件名稱字串,預設'proc-coreRetake'

Returns:

回傳事件物件,可呼叫函數on監聽change事件,可呼叫函數srlog額外進行事件紀錄

Type
Object