As I mentioned in github issues: If SqlTask just inserts an alert data to table, what's the status of this task should be? succeed or running? After all, sending email is the main logic of SqlTask, right ? if email sent by alert server, how to guarantee emails send successfully ? So no matter where the logic, SqlTask should always send email synchronously
On 2020/8/5, 11:52, "zhangchunyang" <[email protected]> wrote: The issues is https://github.com/apache/incubator-dolphinscheduler/issues/3251 At 2020-08-05 11:36:02, "zhangchunyang" <[email protected]> wrote: >In this feature, we will put the function of sending email into the alert email plugin. But I found that SqlTask directly calls the code for sending emails. As a result, after the email function was moved to the dolphinscheduler-alert-email module, SqlTask could no longer call the email code. > >How should we deal with this situation? > >Should SqlTask send emails directly instead of through alert services? If SqlTask should send notifications through the alert server, then the alert server should provide something for SqlTask to call. > >If you think that SqlTask should send notifications through the alert service, then I have a few ideas. You can discuss which is more appropriate: > >Alert server provides grpc interface or http interface, SqlTask calls these interfaces to send notifications. > >SqlTask directly inserts an alert data into the table t_ds_alert, and then the alert server will automatically send a notification asynchronously. > >I think the first solution is better >In this way, tasks can be synchronized to know whether the message was sent successfully or not, and can be fault-tolerant based on the results > >Do you have any suggestions?
