You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by GitBox <gi...@apache.org> on 2020/06/18 08:46:41 UTC

[GitHub] [shardingsphere-elasticjob-lite] hujunzhong removed a comment on issue #787: shutdownInstance空指针

hujunzhong removed a comment on issue #787:
URL: https://github.com/apache/shardingsphere-elasticjob-lite/issues/787#issuecomment-645839526


   @mmx1960 
   
   失败转移的时候也出现同样的异常:
   2020-06-18 14:25:23.249 ERROR [Job-rt|top50|latest_Worker-1] c.d.d.j.e.h.i.DefaultJobExceptionHandler.?:? QTraceId[] Job 'Job-rt|top50|latest' exception occur in job processing
   java.lang.RuntimeException: plan没注册成功Job-rt|top50|latest
           at com.jlx.own.price.schedule.elastic.ElasticPlanJob.execute(ElasticPlanJob.java:26)
           at com.dangdang.ddframe.job.executor.type.SimpleJobExecutor.process(SimpleJobExecutor.java:41)
           at com.dangdang.ddframe.job.executor.AbstractElasticJobExecutor.process(AbstractElasticJobExecutor.java:206)
           at com.dangdang.ddframe.job.executor.AbstractElasticJobExecutor.process(AbstractElasticJobExecutor.java:171)
           at com.dangdang.ddframe.job.executor.AbstractElasticJobExecutor.execute(AbstractElasticJobExecutor.java:150)
           at com.dangdang.ddframe.job.executor.AbstractElasticJobExecutor.execute(AbstractElasticJobExecutor.java:125)
           at com.dangdang.ddframe.job.lite.internal.schedule.LiteJob.execute(LiteJob.java:26)
           at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
           at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557)
   2020-06-18 14:25:23.346 ERROR [Curator-TreeCache-23] o.a.c.f.r.c.TreeCache.?:? QTraceId[]
   java.lang.NullPointerException: null
           at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:936)
           at com.dangdang.ddframe.job.lite.internal.schedule.JobRegistry.getRegCenter(JobRegistry.java:95)
           at com.dangdang.ddframe.job.lite.internal.schedule.JobShutdownHookPlugin.shutdown(JobShutdownHookPlugin.java:28)
           at org.quartz.core.QuartzScheduler.shutdownPlugins(QuartzScheduler.java:2335)
           at org.quartz.core.QuartzScheduler.shutdown(QuartzScheduler.java:712)
           at org.quartz.core.QuartzScheduler.shutdown(QuartzScheduler.java:628)
           at org.quartz.impl.StdScheduler.shutdown(StdScheduler.java:198)
           at com.dangdang.ddframe.job.lite.internal.schedule.JobScheduleController.shutdown(JobScheduleController.java:139)
           at com.dangdang.ddframe.job.lite.internal.schedule.JobRegistry.shutdown(JobRegistry.java:168)
           at com.dangdang.ddframe.job.lite.internal.schedule.SchedulerFacade.shutdownInstance(SchedulerFacade.java:135)
           at com.dangdang.ddframe.job.lite.internal.instance.ShutdownListenerManager$InstanceShutdownStatusJobListener.dataChanged(ShutdownListenerManager.java:61)
           at com.dangdang.ddframe.job.lite.internal.listener.AbstractJobListener.childEvent(AbstractJobListener.java:44)
           at org.apache.curator.framework.recipes.cache.TreeCache$2.apply(TreeCache.java:732)
           at org.apache.curator.framework.recipes.cache.TreeCache$2.apply(TreeCache.java:726)
           at org.apache.curator.framework.listen.ListenerContainer$1.run(ListenerContainer.java:93)
           at com.google.common.util.concurrent.MoreExecutors$DirectExecutorService.execute(MoreExecutors.java:299)
           at org.apache.curator.framework.listen.ListenerContainer.forEach(ListenerContainer.java:85)
           at org.apache.curator.framework.recipes.cache.TreeCache.callListeners(TreeCache.java:725)
           at org.apache.curator.framework.recipes.cache.TreeCache.access$1400(TreeCache.java:71)
   		at org.apache.curator.framework.recipes.cache.TreeCache$4.run(TreeCache.java:843)
           at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
           at java.util.concurrent.FutureTask.run(FutureTask.java:266)
           at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
           at java.util.concurrent.FutureTask.run(FutureTask.java:266)
           at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
           at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
           at java.lang.Thread.run(Thread.java:745)
   
   SimpleJob代码如下:
   @Slf4j
   public class ElasticPlanJob implements SimpleJob {
       @Override
       public void execute(ShardingContext shardingContext) {
           QTraceScope qtraceClient = QTraceClientGetter.getClient().startTrace("ElasticPlanJob");
           try{
               String planName = shardingContext.getJobName();
               QMonitor.recordOne("plan_job_schedule_" + planName);
               QMonitor.recordOne("plan_job_schedule");
               Plan plan = ElasticPlanJobManager.getInstance().findPlan(planName);
               if(plan == null){
                   log.error("plan调度失败,没找到对应plan:{}", planName);
                   throw new RuntimeException("plan没注册成功" + planName);
               }
   
               log.info("开始执行:{}", planName);
               plan.execute();
           } finally {
               if(qtraceClient != null){
                   qtraceClient.close();
               }
           }
       }
   }


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org