0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙開發(fā)接口資源調(diào)度:【@ohos.workScheduler (延遲任務(wù)調(diào)度)】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-06-04 10:01 ? 次閱讀

延遲任務(wù)調(diào)度

本模塊提供延遲任務(wù)注冊、取消、查詢的能力。

開發(fā)者在開發(fā)應(yīng)用時,通過調(diào)用延遲任務(wù)注冊接口,注冊對實時性要求不高的延遲任務(wù),該任務(wù)默認(rèn)由系統(tǒng)安排,在系統(tǒng)空閑時根據(jù)性能、功耗、熱等情況進行調(diào)度執(zhí)行。

icon-note.gif說明: 本模塊首批接口從API version 9開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨標(biāo)記接口的起始版本。 開發(fā)前請熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

導(dǎo)入模塊

import workScheduler from '@ohos.workScheduler'

workScheduler.startWork

startWork(work: WorkInfo): boolean

通知WorkSchedulerService將工作添加到執(zhí)行隊列。

系統(tǒng)能力 :SystemCapability.ResourceSchedule.WorkScheduler

參數(shù)

參數(shù)名類型必填說明
work[WorkInfo]指示要添加到執(zhí)行隊列的工作。

返回值

類型說明
boolean如果工作成功添加到執(zhí)行隊列,則返回true,否則返回false。

示例

let workInfo = {
      workId: 1,
      batteryLevel:50,
      batteryStatus:workScheduler.BatteryStatus.BATTERY_STATUS_LOW,
      isRepeat: false,
      isPersisted: true,
      bundleName: "com.example.myapplication",
      abilityName: "MyExtension"
  }
  var res = workScheduler.startWork(workInfo);
  console.info("workschedulerLog res:" + res);

workScheduler.stopWork

stopWork(work: WorkInfo, needCancel?: boolean): boolean

通知WorkSchedulerService停止指定工作。

系統(tǒng)能力 :SystemCapability.ResourceSchedule.WorkScheduler

參數(shù)

參數(shù)名類型必填說明
work[WorkInfo]指示要停止的工作。
needCancelboolean是否需要取消的工作。

返回值

類型說明
boolean如果成功,則返回true,否則返回false。

示例

let workInfo = {
      workId: 1,
      batteryLevel:50,
      batteryStatus:workScheduler.BatteryStatus.BATTERY_STATUS_LOW,
      isRepeat: false,
      isPersisted: true,
      bundleName: "com.example.myapplication",
      abilityName: "MyExtension"
     }
  var res = workScheduler.stopWork(workInfo, false);
  console.info("workschedulerLog res:" + res);

workScheduler.getWorkStatus

getWorkStatus(workId: number, callback : AsyncCallback): void

獲取工作的最新狀態(tài),使用Callback形式返回。

系統(tǒng)能力 :SystemCapability.ResourceSchedule.WorkScheduler

參數(shù)

參數(shù)名類型必填說明
workIdnumberwork的id。
callbackAsyncCallback<[WorkInfo]>指定的callback回調(diào)方法。如果指定的工作Id有效,則返回從WorkSchedulerService獲取的有效工作狀態(tài);否則返回null。

示例

workScheduler.getWorkStatus(50, (err, res) = > {
    if (err) {
      console.info('workschedulerLog getWorkStatus failed, because:' + err.code);
    } else {
      for (let item in res) {
        console.info('workschedulerLog getWorkStatus success,' + item + ' is:' + res[item]);
      }
    }
  });

workScheduler.getWorkStatus

getWorkStatus(workId: number): Promise

獲取工作的最新狀態(tài),使用Promise形式返回。

系統(tǒng)能力 :SystemCapability.ResourceSchedule.WorkScheduler

參數(shù)

參數(shù)名類型必填說明
workIdnumberwork的id。

返回值

類型說明
Promise<[WorkInfo]>指定的Promise回調(diào)方法。如果指定的工作ID有效,則返回從WorkSchedulerService獲取的有效工作狀態(tài);否則返回null。

示例

workScheduler.getWorkStatus(50).then((res) = > {
    for (let item in res) {
      console.info('workschedulerLog getWorkStatus success,' + item + ' is:' + res[item]);
    }
  }).catch((err) = > {
    console.info('workschedulerLog getWorkStatus failed, because:' + err.code);
  })

workScheduler.obtainAllWorks

obtainAllWorks(callback : AsyncCallback): Array

獲取與當(dāng)前應(yīng)用程序關(guān)聯(lián)的所有工作,使用Callback形式返回。

系統(tǒng)能力 :SystemCapability.ResourceSchedule.WorkScheduler

參數(shù)

參數(shù)名類型必填說明
callbackAsyncCallback指定的callback回調(diào)方法。返回與應(yīng)用程序關(guān)聯(lián)的所有工作。

返回值

類型說明
Array<[WorkInfo]>返回與應(yīng)用程序關(guān)聯(lián)的所有工作。

示例

workScheduler.obtainAllWorks((err, res) = >{
    if (err) {
      console.info('workschedulerLog obtainAllWorks failed, because:' + err.code);
    } else {
      console.info('workschedulerLog obtainAllWorks success, data is:' + JSON.stringify(res));
    }
  });

workScheduler.obtainAllWorks

obtainAllWorks(): Promise>

獲取與當(dāng)前應(yīng)用程序關(guān)聯(lián)的所有工作,使用Promise形式返回。

系統(tǒng)能力 :SystemCapability.ResourceSchedule.WorkScheduler

返回值

類型說明
Promise>指定的Promise回調(diào)方法。返回與應(yīng)用程序關(guān)聯(lián)的所有工作。

示例

workScheduler.obtainAllWorks().then((res) = > {
    console.info('workschedulerLog obtainAllWorks success, data is:' + JSON.stringify(res));
  }).catch((err) = > {
    console.info('workschedulerLog obtainAllWorks failed, because:' + err.code);
  })

workScheduler.stopAndClearWorks

stopAndClearWorks(): boolean

停止和取消與當(dāng)前應(yīng)用程序關(guān)聯(lián)的所有工作。

系統(tǒng)能力 :SystemCapability.ResourceSchedule.WorkScheduler

示例

let res = workScheduler.stopAndClearWorks();
  console.info("workschedulerLog res:" + res);

workScheduler.isLastWorkTimeOut

isLastWorkTimeOut(workId: number, callback : AsyncCallback): boolean

檢查指定工作的最后一次執(zhí)行是否為超時操作,使用Callback形式返回。

系統(tǒng)能力 :SystemCapability.ResourceSchedule.WorkScheduler

參數(shù)

參數(shù)名類型必填說明
workIdnumberwork的id。
callbackAsyncCallback指定的callback回調(diào)方法。如果指定工作的最后一次執(zhí)行是超時操作,則返回true;否則返回false。

返回值

類型說明
boolean指定的callback回調(diào)方法。如果指定工作的最后一次執(zhí)行是超時操作,則返回true;否則返回false。

示例

workScheduler.isLastWorkTimeOut(500, (err, res) = >{
    if (err) {
      console.info('workschedulerLog isLastWorkTimeOut failed, because:' + err.code);
    } else {
      console.info('workschedulerLog isLastWorkTimeOut success, data is:' + res);
    }
  });

workScheduler.isLastWorkTimeOut

isLastWorkTimeOut(workId: number): Promise

檢查指定工作的最后一次執(zhí)行是否為超時操作,使用Promise形式返回。

系統(tǒng)能力 :SystemCapability.ResourceSchedule.WorkScheduler

參數(shù)

參數(shù)名類型必填說明
workIdnumberwork的id。

返回值

類型說明
Promise指定的Promise回調(diào)方法。如果指定工作的最后一次執(zhí)行是超時操作,則返回true;否則返回false。

示例

workScheduler.isLastWorkTimeOut(500)
    .then(res = > {
      console.info('workschedulerLog isLastWorkTimeOut success, data is:' + res);
    })
    .catch(err = >  {
      console.info('workschedulerLog isLastWorkTimeOut failed, because:' + err.code);
    });

WorkInfo

提供工作的具體信息。

系統(tǒng)能力 :以下各項對應(yīng)的系統(tǒng)能力均為SystemCapability.ResourceSchedule.WorkScheduler

參數(shù)名類型必填說明
workIdnumber當(dāng)前工作的ID
bundleNamestring延遲任務(wù)包名
abilityNamestring延遲任務(wù)回調(diào)通知的組件名(必填)
networkType[NetworkType]網(wǎng)絡(luò)類型
isChargingboolean是否充電
chargerType[ChargingType]充電類型
batteryLevelnumber電量
batteryStatus[BatteryStatus]電池狀態(tài)
storageRequest[StorageRequest]存儲狀態(tài)
isRepeatboolean是否循環(huán)任務(wù)
repeatCycleTimenumber循環(huán)間隔
repeatCountnumber循環(huán)次數(shù)
isPersistedboolean是否持久化保存工作
isDeepIdleboolean是否要求設(shè)備進入空閑狀態(tài)
idleWaitTimenumber空閑等待時間

NetworkType

觸發(fā)工作的網(wǎng)絡(luò)類型。

系統(tǒng)能力 :以下各項對應(yīng)的系統(tǒng)能力均為SystemCapability.ResourceSchedule.WorkScheduler

名稱默認(rèn)值說明
NETWORK_TYPE_ANY0表示這個觸發(fā)條件是任何類型的網(wǎng)絡(luò)連接。
NETWORK_TYPE_MOBILE1表示這個觸發(fā)條件是Mobile網(wǎng)絡(luò)連接。
NETWORK_TYPE_WIFI2表示這個觸發(fā)條件是Wifi類型的網(wǎng)絡(luò)連接。
NETWORK_TYPE_BLUETOOTH3表示這個觸發(fā)條件是Bluetooth網(wǎng)絡(luò)連接。
NETWORK_TYPE_WIFI_P2P4表示這個觸發(fā)條件是Wifi P2P網(wǎng)絡(luò)連接。
NETWORK_TYPE_ETHERNET5表示這個觸發(fā)條件是有線網(wǎng)絡(luò)連接。

ChargingType

觸發(fā)工作的充電類型。

系統(tǒng)能力 :以下各項對應(yīng)的系統(tǒng)能力均為SystemCapability.ResourceSchedule.WorkScheduler

名稱默認(rèn)值說明
CHARGING_PLUGGED_ANY0表示這個觸發(fā)條件是任何類型的充電器連接。
CHARGING_PLUGGED_AC1表示這個觸發(fā)條件是直流充電器連接。
CHARGING_PLUGGED_USB2表示這個觸發(fā)條件是USB充連接。
CHARGING_PLUGGED_WIRELESS3表示這個觸發(fā)條件是無線充電器連接。

BatteryStatus

觸發(fā)工作的電池狀態(tài)。

系統(tǒng)能力 :以下各項對應(yīng)的系統(tǒng)能力均為SystemCapability.ResourceSchedule.WorkScheduler

名稱默認(rèn)值說明
BATTERY_STATUS_LOW0表示這個觸發(fā)條件是低電告警。
BATTERY_STATUS_OKAY1表示這個觸發(fā)條件是從低電恢復(fù)到正常電量。
BATTERY_STATUS_LOW_OR_OKAY2表示這個觸發(fā)條件是從低電恢復(fù)到正常電量或者低電告警。HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿

鴻蒙文檔.png

StorageRequest

觸發(fā)工作的存儲狀態(tài)。

系統(tǒng)能力 :以下各項對應(yīng)的系統(tǒng)能力均為SystemCapability.ResourceSchedule.WorkScheduler

名稱默認(rèn)值說明
STORAGE_LEVEL_LOW0表示這個觸發(fā)條件是存儲空間不足。
STORAGE_LEVEL_OKAY1表示這個觸發(fā)條件是從存儲空間不足恢復(fù)到正常。
STORAGE_LEVEL_LOW_OR_OKAY2表示這個觸發(fā)條件是從存儲空間不足恢復(fù)到正常或者存儲空間不足。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8355

    瀏覽量

    150517
  • 鴻蒙
    +關(guān)注

    關(guān)注

    57

    文章

    2287

    瀏覽量

    42630
收藏 人收藏

    評論

    相關(guān)推薦

    鴻蒙原生應(yīng)用/元服務(wù)開發(fā)-延遲任務(wù)說明(一)

    時刻最多申請10個延遲任務(wù)。 執(zhí)行頻率限制:系統(tǒng)對延遲任務(wù)做分級管控,限制延遲任務(wù)
    發(fā)表于 01-16 14:57

    鴻蒙原生應(yīng)用/元服務(wù)開發(fā)-延遲任務(wù)開發(fā)實現(xiàn)(二)

    : workScheduler.WorkInfo): void 延遲調(diào)度任務(wù)開始的回調(diào) onWorkStop(work: workScheduler
    發(fā)表于 01-17 17:53

    (轉(zhuǎn))HarmonyOS(鴻蒙OS)發(fā)布,聊聊操作系統(tǒng)的調(diào)度

    卻不得不在多個并發(fā)服務(wù)之間做公平資源調(diào)配。 Windows可以做到將資源傾斜給前臺任務(wù),Linux不行。Linux可以做到資源的公平份額調(diào)度
    發(fā)表于 08-20 08:00

    Spark資源任務(wù)調(diào)度的詳細(xì)步驟

    Spark資源調(diào)度任務(wù)調(diào)度流程
    發(fā)表于 10-10 09:01

    鴻蒙內(nèi)核源碼分析(調(diào)度機制篇):Task是如何被調(diào)度執(zhí)行的

    本文分析任務(wù)調(diào)度機制源碼 詳見:代碼庫建議先閱讀閱讀之前建議先讀本系列其他文章,進入鴻蒙系統(tǒng)源碼分析(總目錄),以便對本文任務(wù)調(diào)度機制的理解
    發(fā)表于 11-23 10:53

    鴻蒙分布式任務(wù)調(diào)度

    鴻蒙分布式任務(wù)調(diào)度,實現(xiàn)跨設(shè)備FA拉起
    發(fā)表于 06-12 17:28

    鴻蒙分布式任務(wù)調(diào)度——數(shù)據(jù)傳遞

    鴻蒙分布式任務(wù)調(diào)度之?dāng)?shù)據(jù)傳遞
    發(fā)表于 06-12 17:29

    【木棉花】:簡單的分布式任務(wù)調(diào)度

    Ability:Service模板:用于提供后臺運行任務(wù)的能力。Data模板:用于對外部提供統(tǒng)一的數(shù)據(jù)訪問抽象。根據(jù) Ability 模板及意圖的不同,分布式任務(wù)調(diào)度開發(fā)者提供以下
    發(fā)表于 09-03 14:34

    調(diào)度器的原理及其任務(wù)調(diào)度代碼實現(xiàn)

    一、介紹調(diào)度器是常用的一種編程框架,也是操作系統(tǒng)的拆分多任務(wù)的核心,比如單片機的裸機程序框架,網(wǎng)絡(luò)協(xié)議棧的框架如can網(wǎng)關(guān)、485網(wǎng)關(guān)等等,使用場合比較多,是做穩(wěn)定產(chǎn)品比較常用的編程技術(shù)二、原理1
    發(fā)表于 02-17 07:07

    STM32開發(fā)板移植鴻蒙liteos_m內(nèi)核,編譯通過之后運行無法調(diào)度編寫的任務(wù)

    STM32開發(fā)板移植鴻蒙liteos_m內(nèi)核,編譯通過之后運行無法調(diào)度編寫的任務(wù),可以看到任務(wù)已經(jīng)注冊成功,就是不能
    發(fā)表于 11-18 11:46

    云計算環(huán)境中任務(wù)調(diào)度應(yīng)用

    云計算環(huán)境中的任務(wù)調(diào)度問題一直是云計算研究的重點,任務(wù)調(diào)度的目的尋找最優(yōu)的任務(wù)調(diào)度策略,以高效地
    發(fā)表于 11-02 17:30 ?3次下載
    云計算環(huán)境中<b class='flag-5'>任務(wù)</b><b class='flag-5'>調(diào)度</b>應(yīng)用

    基于改進型統(tǒng)一調(diào)度算法改善任務(wù)集的可調(diào)度

    的搶占,降低資源額外銷耗,能夠提高任務(wù)集合的可調(diào)度性;但其任務(wù)的可調(diào)度性分析方法過于粗糙,影響任務(wù)
    發(fā)表于 11-20 11:27 ?0次下載

    基于Spark的資源調(diào)度算法研究

    。算法通過實時監(jiān)視工作節(jié)點資源利用情況,增加對節(jié)點CPU處理速度和CPU剩余利用率的考慮,重新調(diào)度與分配資源,為Spark作為Web服務(wù)高并發(fā)請求、低延遲響應(yīng)提供優(yōu)化,還可以減少傳統(tǒng)方
    發(fā)表于 11-27 15:52 ?0次下載
    基于Spark的<b class='flag-5'>資源</b><b class='flag-5'>調(diào)度</b>算法研究

    基于改進GEP的局部云任務(wù)調(diào)度算法

    針對云計算中一些現(xiàn)有的基于批量調(diào)度模式和進化算法的動態(tài)云任務(wù)調(diào)度算法計算量較大,計算時間成本較高的現(xiàn)象,提出了一種基于改進基因表達(dá)式編程(GEP)和資源改變量的局部云
    發(fā)表于 01-18 13:50 ?0次下載
    基于改進GEP的局部云<b class='flag-5'>任務(wù)</b><b class='flag-5'>調(diào)度</b>算法

    鴻蒙OS 分布式任務(wù)調(diào)度

    鴻蒙OS 分布式任務(wù)調(diào)度概述 在 HarmonyO S中,分布式任務(wù)調(diào)度平臺對搭載 HarmonyOS 的多設(shè)備構(gòu)筑的“超級虛擬終端”提供統(tǒng)
    的頭像 發(fā)表于 01-29 16:50 ?422次閱讀