apache / dolphinscheduler

Apache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code
https://dolphinscheduler.apache.org/
Apache License 2.0
12.73k stars 4.58k forks source link

[Feature][plugin] Supports user-defined task plugins #16526

Closed hanhanzhang closed 1 month ago

hanhanzhang commented 1 month ago

Search before asking

Description

Dolphin community has provided rich task plugins. In our business scenario, users hope to package the provided task plugins into products . For example, users can package HTTP services into custom task plugins and reuse them in multiple business workflows. Now we can use sub-workflows to meet the requirements, we consider whether we can provide user-defined plugin capabilities, compared to UDFs in SQL.

Use case

I hope build task ClassLoader based on task type, and add a task plugin resource.

Related issues

No response

Are you willing to submit a PR?

Code of Conduct

SbloodyS commented 1 month ago

For example, users can package HTTP services into custom task plugins and reuse them in multiple business workflows.

I'm not quite understand what is this. Do you mean http task type?

hanhanzhang commented 1 month ago

For example, users can package HTTP services into custom task plugins and reuse them in multiple business workflows.

I'm not quite understand what is this. Do you mean http task type?

Business service has many http request parameters, which are used in multiple workflows. Request parameters need to be configured each time. Business wants to productize the existing http service as a new task plugin (Common parameters provide default configuration, of course, Modify original service could be a solution, but default parameter configuration is constrained by business scenario). In addition, some services do not provide Http calls, but provide RPC calls (of course, through the shell script packaging into products).

hanhanzhang commented 1 month ago

Also based on business requirements, we want to see if community has plans to open up the ability of user-defined task plugins (similar to the UDF capability opened by SQL), of course, through shell scripts task plugin.

SbloodyS commented 1 month ago

I still don't know what is the meaning of Business?

Also based on business requirements, we want to see if community has plans to open up the ability of user-defined task plugins (similar to the UDF capability opened by SQL), of course, through shell scripts task plugin.

We already have the task plugin SPI.

hanhanzhang commented 1 month ago

I still don't know what is the meaning of Business?

Also based on business requirements, we want to see if community has plans to open up the ability of user-defined task plugins (similar to the UDF capability opened by SQL), of course, through shell scripts task plugin.

We already have the task plugin SPI.

Yes, community provides the strength task plugin SPI mechanism, but there is a question: Can the new task plugin be developed without starting worker?

SbloodyS commented 1 month ago

Can the new task plugin be developed without starting worker?

Not possible right now.

hanhanzhang commented 1 month ago

Can the new task plugin be developed without starting worker?

Not possible right now.

Whether there is a plan for this ability

SbloodyS commented 1 month ago

There are no plans to do so right now.

SbloodyS commented 1 month ago

Closing for now.

hanhanzhang commented 1 month ago

Closing for now.

If we want to contribute this code capability, what process should follow?

SbloodyS commented 1 month ago

It's unsafe to change task plugin during runtime. This can lead to a lot of task failures and unstable factors such as different task plugins between different workers, etc. We do not want this kind of feature.

hanhanzhang commented 1 month ago

It's unsafe to change task plugin during runtime. This can lead to a lot of task failures and unstable factors such as different task plugins between different workers, etc. We do not want this kind of feature.

got