You're seeing just the function start_connect, go back to ExAliyunOts.Tunnel.Worker module for more information.
Link to this function

start_connect(instance, opts)

View Source


start_connect(instance :: atom(), opts :: Keyword.t()) :: {:ok, pid()}

Start a supervised tunnel worker which maintains a heartbeat connection to the tunnel service internally, it will make the current process who calls this function as a subscriber, the subscriber will receive data records status information via handle_call/3 in {:record_event, {records, next_token}} message format later once there are some data records changed with insert/update/delete operations, please inspect records for details.


  • :tunnel_id, required, the tunnel id to setup the tunnel working flow.
  • :heartbeat_interval, time to run heartbeat internally, defaults to 30 seconds, at least 5 seconds.
  • :heartbeat_timeout, heartbeat timeout, defaults to 300 seconds.
  • :connect_timeout, timeout setting in "ClientConfig" tunnel proto file, defaults to 300 seconds.
  • :client_tag, optional, the custom client tag that is used to generate a tunnel client id, can customize this parameter to uniquely identify tunnel workers.