-
Notifications
You must be signed in to change notification settings - Fork 530
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[INLONG-11401][Manager] Support Dolphinscheduler schedule engine #11468
base: master
Are you sure you want to change the base?
Conversation
bd7fb5d
to
6bf84a2
Compare
55c7d24
to
b0b99c4
Compare
Nice work! |
Yes, natively, only Crontab expressions are accepted for task scheduling. And i also check DS related implements, their underlying implementation were similar to inlong's built-in engine, uses quartz for scheduling,the difference is that DS only use |
...src/main/java/org/apache/inlong/manager/schedule/dolphinscheduler/DolphinScheduleEngine.java
Outdated
Show resolved
Hide resolved
...src/main/java/org/apache/inlong/manager/schedule/dolphinscheduler/DolphinScheduleEngine.java
Outdated
Show resolved
Hide resolved
...src/main/java/org/apache/inlong/manager/schedule/dolphinscheduler/DolphinScheduleEngine.java
Outdated
Show resolved
Hide resolved
...src/main/java/org/apache/inlong/manager/schedule/dolphinscheduler/DolphinScheduleEngine.java
Outdated
Show resolved
Hide resolved
...src/main/java/org/apache/inlong/manager/schedule/dolphinscheduler/DolphinScheduleEngine.java
Outdated
Show resolved
Hide resolved
...ava/org/apache/inlong/manager/schedule/dolphinscheduler/DolphinScheduleContainerTestEnv.java
Outdated
Show resolved
Hide resolved
inlong-manager/manager-web/src/main/resources/application-dev.properties
Outdated
Show resolved
Hide resolved
inlong-manager/manager-web/src/main/resources/application-dev.properties
Show resolved
Hide resolved
inlong-manager/manager-web/src/main/resources/application-prod.properties
Outdated
Show resolved
Hide resolved
inlong-manager/manager-web/src/main/resources/application-test.properties
Outdated
Show resolved
Hide resolved
...src/main/java/org/apache/inlong/manager/schedule/dolphinscheduler/DolphinScheduleEngine.java
Outdated
Show resolved
Hide resolved
...src/main/java/org/apache/inlong/manager/schedule/dolphinscheduler/DolphinScheduleEngine.java
Outdated
Show resolved
Hide resolved
...src/main/java/org/apache/inlong/manager/schedule/dolphinscheduler/DolphinScheduleEngine.java
Outdated
Show resolved
Hide resolved
be574d1
be574d1
to
44da2e2
Compare
* @param searchVal The name of the project to search for. | ||
* @return The unique project ID if found, or 0 if not found or an error occurs. | ||
*/ | ||
public long checkAndGetUniqueId(String url, String token, String searchVal) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As a Utils
class, it should not be used through the new method. It is recommended to refer to HttpUtils.
/** | ||
* Exceptions occur in the schedule procedure. | ||
* */ | ||
public class DolphinScheduleException extends RuntimeException { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This exception class has no meaning except for exceptions marked as DolphinSchedule.
Fixes #11401
Motivation
dolphinscheduler
package inorg.apache.inlong.manager.schedule
Modifications
Because DS officially does not provide SDK to call, only provides openAPI call mode, so all scheduling behavior is based on open-api requests
Provides some disaster recovery logic
ConcurrentHashMap
to store schedule data ensure thread safety during start, running or stopHow to use
inlong manager
performs dependency injection at startup via the @value annotation.start()
or.stop()
to manage DS engineVerifying this change
How is the token generated?
DS url
for example:
http://{ip}:{port}/dolphinscheduler
testRegisterScheduleInfo
the callback request was successfully sent to inlong, and the related tasks are processed in flink
log info:
log info:
(Please pick either of the following options)
This change is a trivial rework/code cleanup without any test coverage.
This change is already covered by existing tests, such as:
(please describe tests)
This change added tests and can be verified as follows:
(example:)
Documentation