介绍
meshblu-core-job-manager-async 是由 Octoblu 公司开发的 npm 包,用于在 Node.js 中管理异步任务以及管理消息传递,支持 AMQP、MQTT、HTTP、TCP 等多种消息传递方式。它可以在用 JavaScript 编写的机器人、调度程序和其他类型的应用程序中使用,为开发者提供了更加简便的工具和解决方案。
安装
在使用 meshblu-core-job-manager-async 之前,需要先安装 Node.js 环境,然后通过 npm 安装 meshblu-core-job-manager-async:
npm install --save meshblu-core-job-manager-async
使用示例
创建一个 job
-- -------------------- ---- ------- ------ - --- - ---- -------------------------------- ----- --- - --- ----------------- - -------- - -------- ------- ------- - -- ------------------ ------ -- - ---------------- --------- ---- ------- -- ------- -- --------------- ----- -- - -------------------- -- ---------
发送一个消息
-- -------------------- ---- ------- ------ - ------------------------ - ---- -------------------------------- ----- ------------- - --- -------------------------- ----- ------------ ------ ------------- --------- ------- --------- ---------------------- ----- --- -- -------------------- -------- ------------------------ -------- - -------- ------- ------- - -- ------- --------- -- - -- ------- - -------------------- ------ - --------------------- --
API 文档
Job
Job
对象管理异步任务的创建、提交、查询和取消等操作。
new Job(name: string, params: object)
创建一个名为 name
的 Job 并传入一个参数对象 params
。
const job = new Job('sample-job', { payload: { message: 'hello, world!' }, delay: 10 * 60 * 1000, // 10 分钟后开始执行 timeout: 60 * 1000, // 执行时间超过 1 分钟会失败 retry: 3, // 失败后重试 3 次 backoff: 'exponential', // 指数级退避重试策略 backoffDelay: 1000 // 每次退避 1 秒 })
job.run(): Promise<any>
提交该 job 到队列并开始执行。
job.run() .then(result => console.log(result)) .catch(error => console.error(error))
job.cancel(): Promise<any>
取消该 job 的执行。
job.cancel() .then(() => console.log('Job cancelled')) .catch(error => console.error(error))
事件
complete
Job 执行完成后触发,回调函数参数为 Job 执行的结果。error
Job 执行出错时触发,回调函数参数为错误对象。
MeshbluHttpMessageSender
MeshbluHttpMessageSender
对象管理消息传递的 HTTP 请求的创建和发送。
new MeshbluHttpMessageSender(options: object)
创建一个 MeshbluHttpMessageSender
实例,参数为一个对象,包含以下字段:
uuid
: String,Meshblu 设备的唯一标识。token
: String,Meshblu 设备的访问令牌。protocol
: String,消息传递协议。hostname
: String,Meshblu 服务器的主机名。port
: Number,Meshblu 服务器的端口号。
const messageSender = new MeshbluHttpMessageSender({ uuid: 'your-uuid', token: 'your-token', protocol: 'http', hostname: 'meshblu.octoblu.com', port: 443 })
messageSender.send(message: object, callback: function)
发送一个消息,消息格式为一个对象,包含以下字段:
devices
: Array,接收者的设备标识数组。payload
: Object,消息的负载数据。options
: Object,可选参数。
-- -------------------- ---- ------- -------------------- -------- ------------------------ -------- - -------- ------- ------- -- -------- - --------------------- ----- - -- ------- --------- -- - -- ------- - -------------------- ------ - --------------------- --
总结
meshblu-core-job-manager-async 是一个非常实用的 npm 包,可以帮助我们快速、简便地管理异步任务和消息传递。它在机器人、调度程序和其他类型的应用程序开发中有着广泛的应用。本文列举了一些使用示例和 API 文档,希望读者们能够通过这篇文章更加深入地了解和使用 meshblu-core-job-manager-async。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066f401d8e776d08040cdb