Hi sunkai ``` ScheduleAnnotationJobBootstrap.newBuilder(SimpleTestJob.class).setRegCenter(regCenter).addExtraConfigurations(tracingConfig).build().schedule(); ``` The API require a class means it force developer to provide a no-args constructor. How about passing an instance?
------------------ Sincerely, Weijie Wu (TeslaCN) Apache ShardingSphere sk c <sunkai....@gmail.com> 于2021年8月12日周四 下午12:37写道: > > Hello Weijie, > > Annotation to use it without Spring, maybe we can do that: > > ``` > @ElasticScheduled( > cron = "0/5 * * * * ?", > jobName = "SimpleTestJob", > shardingTotalCount = 3, > shardingItemParameters = "0=Beijing,1=Shanghai,2=Guangzhou", > props = { > @ElasticJobProp(key = "print.title", value = "test title"), > @ElasticJobProp(key = "print.content", value = "test > content") > } > ) > public class SimpleTestJob implements CustomJob { > > @Override > public void execute(final ShardingContext shardingContext) { > } > > } > ``` > > ``` > > public final class JavaMain { > ..... > public static void main(final String[] args) throws IOException { > CoordinatorRegistryCenter regCenter = setUpRegistryCenter(); > TracingConfiguration<DataSource> tracingConfig = new > TracingConfiguration<>("RDB", setUpEventTraceDataSource()); > > ScheduleAnnotationJobBootstrap.newBuilder(SimpleTestJob.class).setRegCenter(regCenter).addExtraConfigurations(tracingConfig).build().schedule(); > } > ..... > } > > ``` > > > ------------------ > Sincerely, > SunKai Cai (skai) > > 吴伟杰 <wuwei...@apache.org> 于2021年8月12日周四 上午11:07写道: > > > Hi sunkai, > > > > If we define the annotations in API module, we also need to define how > > to use it without Spring. > > > > ------------------ > > > > Sincerely, > > Weijie Wu (TeslaCN) > > Apache ShardingSphere > > > > sk c <sunkai....@gmail.com> 于2021年8月11日周三 下午7:53写道: > > > > > > Hello Weijie, > > > > > > Thank you, good ideas. Maybe we can do that: > > > > > > > > > 1. Move the `@ElasticScheduled` annotation to `api/annotation`. We can > > > have the same annotation , and different annotation processor without > > > Spring. > > > > > > 2. Yes, this is important. I have a idea like that: > > > > > > Set Scheduled > > > ``` > > > package > > > > > org.apache.shardingsphere.elasticjob.lite.spring.core.annotation.job.impl; > > > @ElasticScheduled( > > > cron = "0/5 * * * * ?", > > > jobName = SimpleTestJobFirst > > > shardingTotalCount = 3, > > > shardingItemParameters = "0=Beijing,1=Shanghai,2=Guangzhou", > > > extraConfigurations = {"SimpleTracingConfiguration"} > > > ) > > > public class SimpleTestJob implements CustomJob { > > > > > > @Override > > > public void execute(final ShardingContext shardingContext) { > > > } > > > > > > } > > > ``` > > > > > > Set Configurable > > > > > > ``` > > > //spring example > > > @Configurable > > > @EnableElastic(scanBasePackages = > > > > > "org.apache.shardingsphere.elasticjob.lite.spring.core.annotation.job.impl") > > > public class ElasticConfig { > > > > > > @Bean > > > public DataSource dataSource() { > > > BasicDataSource dataSource = new BasicDataSource(); > > > dataSource.setDriverClassName("org.h2.Driver"); > > > dataSource.setUrl("jdbc:h2:mem:job_event_storage"); > > > dataSource.setUsername("sa"); > > > dataSource.setPassword(""); > > > } > > > > > > @Bean("SimpleTracingConfiguration") > > > public TracingConfiguration<DataSource> myTracingConfiguration() { > > > return new TracingConfiguration<>("RDB", dataSource()); > > > } > > > } > > > ``` > > > or > > > > > > ``` > > > //spring boot example > > > @Configurable > > > @EnableElastic(scanBasePackages = > > > > > "org.apache.shardingsphere.elasticjob.lite.spring.core.annotation.job.impl") > > > public class ElasticConfig { > > > > > > @ConditionalOnBean(DataSource.class) > > > @Bean("SimpleTracingConfiguration") > > > public TracingConfiguration<DataSource> myTracingConfiguration(final > > > DataSource dataSource) { > > > return new TracingConfiguration<>("RDB", dataSource); > > > } > > > } > > > ``` > > > > > > 3. Of course > > > > > > ------------------ > > > Sincerely, > > > SunKai Cai (skai) > > > > > > 吴伟杰 <wuwei...@apache.org> 于2021年8月11日周三 下午6:38写道: > > > > > > > Hi Sunkai, > > > > > > > > I have some ideas about your proposal: > > > > 1. Could we consider using the annotation without Spring? > > > > 2. Could we configure the jobs by annotations only? How to configure > > > > the JobExtraConfiguration like TracingConfiguration by annotations? > > > > 3. Support using YAML to configure jobs without Spring. This can refer > > > > to how ShardingSphere does. > > > > > > > > ------------------ > > > > > > > > Sincerely, > > > > Weijie Wu (TeslaCN) > > > > Apache ShardingSphere > > > > > > > > sk c <sunkai....@gmail.com> 于2021年8月10日周二 下午3:43写道: > > > > > > > > > > Hi everyone, > > > > > > > > > > I prefer to discuss the annotation of ElasticJob plan. > > > > > > > > > > example: > > > > > > > > > > ``` > > > > > @ElasticScheduled( > > > > > cron = "0/5 * * * * ?", > > > > > jobName = "SimpleTestJobSecond", > > > > > shardingTotalCount = 3, > > > > > shardingItemParameters = "0=Beijing,1=Shanghai,2=Guangzhou", > > > > > jobListenerTypes = {"NOOP", "LOG"}, > > > > > props = { > > > > > @ElasticJobProp(key = "print.title", value = "test > > > > title"), > > > > > @ElasticJobProp(key = "print.content", value = "test > > > > > content") > > > > > } > > > > > ) > > > > > public class SimpleTestJob implements CustomJob { > > > > > > > > > > @Override > > > > > public void execute(final ShardingContext shardingContext) { > > > > > } > > > > > > > > > > } > > > > > ``` > > > > > > > > > > ``` > > > > > @Configuration > > > > > @EnableElastic(scanBasePackages = > > > > > "org.apache.shardingsphere.elasticjob.lite.example.job.simple") > > > > > public class ElasticConfig { > > > > > > > > > > } > > > > > ``` > > > > > > > > > > we can look at it on > > > > > https://github.com/apache/shardingsphere-elasticjob/pull/1954 > > > > > > > > > > I am going to work it soon. Please remind me if you have a > > suggestion. > > > > > > > > > > > > > > > ------------------ > > > > > Sincerely, > > > > > SunKai Cai (skai) > > > > > >