暂停连接器¶
在向导之后可以暂停连接器。它可以在 Finalize Configuration
步骤之后执行。此步骤允许用户在连接器启动后操作其状态。此阶段的入口点是一个名为 PUBLIC.PAUSE_CONNECTOR()
的过程。可以通过在 SQL 中替换该入口点或使用 PauseConnectorHandlerBuilder
对该入口点进行自定义。暂停连接器以允许用户将其重新启动的相反过程是 恢复连接器。
要调用此过程,用户需要已获得 ADMIN
应用程序角色。
暂停连接器步骤在内部由几个阶段组成。其中一些是完全可自定义的,默认情况下,不执行任何操作。这些阶段如下所示:
权限验证
状态验证
状态验证
状态更新 (PAUSING)
内部回调
暂停任务反应器(如果启用了任务反应器)
状态更新 (PAUSED)
要求¶
在原生应用程序安装过程中,暂停连接器至少需要执行以下 SQL 文件:
core.sql
configuration/app_config.sql
lifecycle/pause.sql
推荐:
configuration/finalize_configuration.sql
权限验证¶
要暂停连接器,必须向应用程序授予 EXECUTE TASK
权限。
不能通过使用 PauseConnectorHandlerBuilder
或覆盖存储过程来覆盖此验证。但是,可以实现自定义处理程序。
状态验证¶
要暂停连接器,连接器的内部状态需要是 STARTED
。
不能通过使用 PauseConnectorHandlerBuilder
或覆盖存储过程来覆盖此验证。但是,可以实现自定义处理程序。
状态验证¶
如果需要满足一些额外的自定义验证,则可以使用 PUBLIC.PAUSE_CONNECTOR_VALIDATE()
存储过程,用户可以对其进行自定义。默认情况下,此过程仅返回 'response_code': 'OK'
。通过覆盖 SQL 或使用 PauseConnectorHandlerBuilder
并提供 PauseConnectorStateValidator
接口的自定义实现来对该过程进行自定义。
内部回调¶
内部回调是另一个可自定义的步骤。默认情况下,它会调用 PUBLIC.PAUSE_CONNECTOR_INTERNAL()
,返回 'response_code': 'OK'
。此过程允许用户在暂停连接器时执行所需的任何其他任务。例如,暂停其他连接器特定任务。可以通过 PauseConnectorCallback
脚本或使用 PauseConnectorHandlerBuilder
提供 接口的自定义实现来将其覆盖。
状态更新¶
成功完成上述所有阶段后,连接器的内部状态将更新为:
{
"status": "PAUSED",
"configurationStatus": "FINALIZED"
}
有关状态转换的整个图表,请参阅 连接器流。
响应¶
成功响应¶
如果该过程在后台成功暂停所有任务并将其状态更改为 PAUSED,则会直接从 PauseConnectorHandler
方法主体返回 Connector successfully paused.
消息。建议使用以下格式:
{ "response_code": "OK" }
错误响应¶
如果出现错误,响应将遵循以下格式:
{ "response_code": "<ERROR_CODE>", "message": "error message" }
可能的错误代码包括:
INVALID_CONNECTOR_STATUS
– 在状态不同于[STARTED, PAUSING]
的连接器上调用了该过程CONNECTOR_STATUS_NOT_FOUND
– 数据库中不存在连接器状态记录(与此暂存区的用户输入无关 – 内部错误)ROLLBACK_CODE
– 出现了错误,但成功恢复了更改。INTERNAL_ERROR
– 内部出现问题,消息应具有描述性UNKNOWN_ERROR_CODE
– 出现了未知错误,连接器现处于未指定状态