elastic-job getShardingParameter设置了值取出为空

发布于 2021-12-01 13:59:39 字数 2000 浏览 926 评论 2

这么设置参数:如下图

private static LiteJobConfiguration createJobConfiguration() {

    JobCoreConfiguration.Builder builder = JobCoreConfiguration.newBuilder(
            "demoSimpleJob",
            "0/15 * * * * ?",
            3
    );
    builder.failover(true);
    builder.misfire(true);
    builder = builder.jobParameter("test");
    builder = builder.shardingItemParameters("0=A,1=B,2=C");
    JobCoreConfiguration simpleCoreConfig = builder.build();
    SimpleJobConfiguration simpleJobConfiguration = new SimpleJobConfiguration(simpleCoreConfig, ElasticJobDemo.class.getCanonicalName());
    LiteJobConfiguration simpleJobRootConfig = LiteJobConfiguration.newBuilder(simpleJobConfiguration).build();
    return simpleJobRootConfig;
}

这么取参数

@Override
public void execute(ShardingContext context) {
    System.out.println("content = " + context.getShardingItem());
    System.out.println("jobname = " + context.getJobName());
    String shardingParameter = context.getShardingParameter();
    System.out.println(context.toString());
    switch (context.getShardingItem()) {
        case 0:
            System.out.println(Thread.currentThread() + ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>0"+"__"+shardingParameter);
            break;
        case 1:
            System.out.println(Thread.currentThread() + ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>1"+"__"+shardingParameter);
            // do something by sharding item 1
            break;
        case 2:
            System.out.println(Thread.currentThread() + ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>2"+"__"+shardingParameter);
            // do something by sharding item 2
            break;
        // case n: ...
    }
}

取出的是为null

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

孤檠 2021-12-05 07:15:36

解决步骤:

第一删除配置,如图

重启任务,如果还不行,关掉IDE,重新编译

泪冰清 2021-12-04 18:06:54

因为Elastic-Job有一个overwrite的设置,用于配置以客户端配置为准,还是以注册中心配置为准。

因此您这次的问题应该是,overwrite设置为false,改动了客户端的配置后并未生效,因为配置是以注册中心为准的。但是删除了注册中心的数据后,无论客户端是否配置覆盖,注册中心由于没有数据,因此会以客户端为准。

因此只要设置overwrite=true即可。

更多配置细节请参考配置手册:http://dangdangdotcom.github.io/elastic-job/elastic-job-lite/02-guide/config-manual/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文