许多 Meilisearch 操作都是以任务形式异步处理的。异步任务允许您对 Meilisearch 项目进行资源密集型更改,而不会造成用户停机。 在本教程中,您将使用 Meilisearch API 向索引添加文档,然后监控其状态。

要求

  • 正在运行的 Meilisearch 项目
  • 命令行控制台

将任务添加到任务队列

需要索引的操作,例如添加和更新文档或更改索引设置,将始终生成任务。 首先创建一个索引,然后向此索引添加大量文档:
curl \
  -X POST 'MEILISEARCH_URL/indexes/movies/documents'\
  -H 'Content-Type: application/json' \
  --data-binary @movies.json
Meilisearch 不会立即处理您的请求,而是将其添加到队列中并返回一个摘要任务对象
{
  "taskUid": 0,
  "indexUid": "movies",
  "status": "enqueued",
  "type": "documentAdditionOrUpdate",
  "enqueuedAt": "2021-08-11T09:25:53.000000Z"
}
摘要任务对象是您的请求已获接受的确认。它还为您提供可用于监控请求状态的信息,例如 taskUid
您可以使用 Cloud 界面将文档添加到新的 Meilisearch Cloud 索引中。要获取此任务的 taskUid,请访问“任务”概述并查找与您新创建的索引关联的“文档添加或更新”任务。

监控任务状态

Meilisearch 按照任务添加到队列的顺序处理任务。您可以使用 Meilisearch Cloud 界面或 Meilisearch API 检查任务状态。

在 Meilisearch Cloud 界面中监控任务状态

登录您的 Meilisearch Cloud 帐户并导航到您的项目。单击项目菜单中的“任务”链接: 突出显示“任务”的 Meilisearch Cloud 菜单 这将引导您进入任务概述。在“Uid”列中查找您的请求的 taskUid 列出多个 Meilisearch Cloud 任务的表格 当任务 status 更改为 succeeded 时,Meilisearch 已完成处理您的请求。 如果任务 status 更改为 failed,Meilisearch 未能满足您的请求。检查任务对象的 error 字段以获取更多信息。

使用 Meilisearch API 监控任务状态

使用请求响应中的 taskUid 检查任务状态
curl \
  -X GET 'MEILISEARCH_URL/tasks/1'
这将返回完整的任务对象
{
  "uid": 4,
  "indexUid" :"movie",
  "status": "succeeded",
  "type": "documentAdditionOrUpdate",
  "canceledBy": null,
  "details": {

  },
  "error": null,
  "duration": "PT0.001192S",
  "enqueuedAt": "2022-08-04T12:28:15.159167Z",
  "startedAt": "2022-08-04T12:28:15.161996Z",
  "finishedAt": "2022-08-04T12:28:15.163188Z"
}
如果任务仍处于 enqueuedprocessing 状态,请等待片刻并再次查询数据库。您也可以设置 Webhook 侦听器 status 更改为 succeeded 时,Meilisearch 已完成处理您的请求。 如果任务 status 更改为 failed,Meilisearch 未能满足您的请求。检查任务对象的 error 字段以获取更多信息。

结论

您已经了解了当 API 请求将任务添加到任务队列时会发生什么,以及如何检查该任务的状态。有关任务工作方式的更多信息,请查阅任务 API 参考异步操作说明
© . This site is unofficial and not affiliated with Meilisearch.