Docs 菜单
Docs 主页
/ /
Atlas App Services
/

禁用触发器

在此页面上

  • Overview
  • 从快照恢复

Atlas Triggers可能会进入 suspended状态,以响应阻止trigger的change stream继续的事件,例如网络中断或底层集群更改。当trigger进入挂起状态时,它不会接收变更事件,也不会触发。

注意

如果触发暂停或失败,Atlas App Services 会向项目所有者发送一封电子邮件,提醒他们注意该问题。

您可以从 Atlas App Services 用户界面或使用App Services CLI 导入应用程序目录来暂停触发器。

1

Database TriggersTriggers 页面的标签页上,在Atlas Triggers中找到要禁用的trigger。

App Services用户界面中应用内的触发器列表
2

Enabled开关切换到“关闭”设置。

App Services用户界面中的“编辑trigger ”屏幕
点击放大
3

如果未启用开发模式,请按review draft & deploy按钮以发布更改。

1
appservices pull --remote=<App ID>
2

如果导出了应用程序的新副本,它应该已经包含已暂停trigger的最新配置文件。 您可以在 目录中查找与触发器同名的 文件/triggers triggertrigger,以确认该配置文件存在。

3

验证trigger配置文件存在后,将名为 "disabled" 且值为 true 的字段添加到trigger JSON定义的顶层:

{
"id": "6142146e2f052a39d38e1605",
"name": "steve",
"type": "SCHEDULED",
"config": {
"schedule": "*/1 * * * *"
},
"function_name": "myFunc",
"disabled": true
}
4

最后,将配置推送回您的应用:

appservices push

考虑以下情况:

  1. 数据库触发器被禁用或暂停。

  2. 禁用trigger时会添加新文档。

  3. 数据库从快照恢复到添加新文档之前的时间。

  4. 数据库触发器已重新启动。

在这种情况下,trigger会选取所有新添加的文档并为每个文档触发。对于已处理的事件,它不会再次触发。

注意

如果以前启用的数据库触发器在快照恢复期间正在运行,您将在 Atlas 用户界面的“编辑trigger”部分看到错误,因为trigger在恢复过程中无法连接到 Atlas 集群。快照恢复完成后,错误就会消失,触发器会继续正常执行。

后退

定时触发器