← All tasks
javaapache/shardingsphere-elasticjob #2439Not a task: already works

Removes use of the discontinued Quartz in ElasticJob

envgap__apache__shardingsphere-elasticjob-2439

01 / FAILURE SIGNATURE

As reported upstream

No identifying execution failure has been captured.
Not a benchmark task.
  • The project already builds and runs before the fix, so there is nothing to repair.

02 / ENVIRONMENT RECIPE

Base commit
c10be8a3438c8ecbeef69295ced1679a72ac7648
Manifest
pom.xml
Reproduce
Awaiting issue-specific recipe
Run under trace
Awaiting a meaningful runtime command

03 / ORIGINAL ISSUE TEXT

apache/shardingsphere-elasticjob #2439 · read the original issue
## Feature Request



**For English only**, other languages will not accept.



Please pay attention on issues you submitted, because we maybe need more details. 

If no response anymore and we cannot make decision by current information, we will **close it**.



Please answer these questions before submitting your issue. Thanks!



### Is your feature request related to a problem?



- See https://github.com/quartz-scheduler/quartz/issues/1134 .



### Describe the feature you would like.



- In short, ElasticJob is a distributed job framework, which is mainly designed to be used by ShardingSphere. ElasticJob relies on a non-distributed job framework, Quartz. Quartz introduced an old version of HikariCP, which led to the unique form of using ElasticJob on the ShardingSphere side. See https://github.com/apache/shardingsphere/blob/f699f56189bdc7925bc3c75a170ea1c7c142810f/pom.xml#L385 .

```xml

<dependency>

    <groupId>org.apache.shardingsphere.elasticjob</groupId>

    <artifactId>elasticjob-lite-core</artifactId>

    <version>${elasticjob.version}</version>

    <exclusions>

    <exclusion>

        <groupId>com.zaxxer</groupId>

            <artifactId>HikariCP-java7</artifactId>

        </exclusion>

    </exclusions>

</dependency>

```

- Quartz has stopped maintenance, and we should consider switching to other underlying job frameworks that do not support distributed jobs.

- First of all we cannot use https://github.com/jobrunr/jobrunr . `jobrunr/jobrunr` uses `LGPL-3.0-only`, which is not allowed by ASF. `LGPL-3.0-only` libraries may only be used during unit testing or during the build process. See https://www.apache.org/legal/resolved.html . 

- Consider the following options?

    - https://github.com/lukas-krecan/ShedLock

    - https://github.com/kagkarlsson/db-scheduler

    - Aloha, Jakarta EE 11?

    -  A non-distributed job module that ElasticJob can proactively implement? But I'm really not sure how complicated that would be.
Continue on GitHub ↗

04 / LABELS

Labels from the report text only; not yet run

No supported category has been assigned.

Label rules and the text that matched
[]