elastic-job getShardingParameter设置了值取出为空
这么设置参数:如下图
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
解决步骤:
第一删除配置,如图
重启任务,如果还不行,关掉IDE,重新编译
因为Elastic-Job有一个overwrite的设置,用于配置以客户端配置为准,还是以注册中心配置为准。
因此您这次的问题应该是,overwrite设置为false,改动了客户端的配置后并未生效,因为配置是以注册中心为准的。但是删除了注册中心的数据后,无论客户端是否配置覆盖,注册中心由于没有数据,因此会以客户端为准。
因此只要设置overwrite=true即可。
更多配置细节请参考配置手册:http://dangdangdotcom.github.io/elastic-job/elastic-job-lite/02-guide/config-manual/